所以我正在尝试开发一个FAT32引导程序,但是我遇到了一些问题,我发现了这个公式:
LBACHS:
xor dx, dx ; prepare dx:ax for operation
div WORD [SectorsPerTrack] ; calculate
inc dl ; adjust for sector 0
mov BYTE [absoluteSector], dl
xor dx, dx ; prepare dx:ax for operation
div WORD [SectorsPerHead] ; calculate
mov BYTE [absoluteHead], dl
mov BYTE [absoluteTrack], al
ret
将线性基地址转换为我的扇区加载所需的CHS地址。
但是当我用virtualbox启动时。它挂在:
div WORD [SectorsPerTrack] ; calculate
我首先注意到它被绞死,然后插入int 0x19
无处不在,看看代码是否到达那里。它到了xor dx, dx
之间的界限,但不是在下一行之后?
所以我的问题:可能导致这种情况的原因是什么?
(顺便说一句:我正在使用nasm来组装!)