Ассамблея Дивисон зависает?
Итак, я пытаюсь разработать загрузчик 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 для сборки!)