ПК не загружается с 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
регистр.