ПК не загружается с INT 19H

Я пишу хук IRQ1 для установки в MBR. моя программа не перезаписывает загрузочную сигнатуру (55AAh), но когда я запускаю свою программу, компьютер не загружается даже с загрузчиком INT 19H IBM PC. здесь

мой код в сборке x86:

1337:
...

mov ax,201h
mov bx,7c00h
mov cx,7    ;sector 7 is where the original MBR is writed
mov dx,80h
int 13h

mov ax,301h
mov cx,1
int 13h     ;restore original MBR

mov dl,80h
int 19h     ;IBM PC bootstrap loader failed

почему при загрузке ПК происходит сбой с кодом выше??????????

1 ответ

Убедитесь, что новый загрузочный сектор, который вы впервые получили из сектора 7, имеет правильную подпись! Вы указали, что это 55AAh, где это должно быть AA55h. В памяти это сначала байт 55h со смещением 510, затем байт AAh со смещением 511.

С адресом 7C00h в BX, тебе нужно ES=0, Эта настройка такая?

Было бы лучше проверить ошибки, как указано в флаге переноса и AH регистр.

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