Ассамблея Дивисон зависает?

Итак, я пытаюсь разработать загрузчик 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 ответов

Другие вопросы по тегам