大会Divison挂起?

时间:2013-11-30 21:10:58

标签: assembly x86 division bootloader fat32

所以我正在尝试开发一个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来组装!)

0 个答案:

没有答案