Мой простой код:
[ORG 0x7C00]
MOV AH,0x02 ;Using the function of reading floppy
MOV AL,0x01 ;The number of sectors to be read is 1.
MOV CH,0x00 ;Only read 0 track
MOV CL,0x03 ;Only read the third sector
MOV DH,0x00 ;Only read the 0 head
MOV DL,0x00 ;Using driver 0
INT 13H
JMP $ ;Just for loop forever
TIMES 510 - ($ - $$) db 0 ;This is for 1 sector(512 bytes)
DW 0xAA55 ;This is for the end of boot sector
После того, как я бегу по bochsdbg.
Показывает:
(0) Breakpoint 1, 0x00007c00 in ?? ()
Next at t=12943079
(0) [0x00007c00] 0000:7c00 (unk. ctxt): mov ah, 0x02 ; b402
<bochs:3> c
00012943849i[FDD ] read() on floppy image returns 0
00012989063i[CPU0 ] LOCK prefix unallowed (op1=0x53, attr=0x0, mod=0x0, nnn=0)
Я думаю, что INT 13 должен вернуть состояние ошибки с CF = 1, но не останавливаться этим сообщением об ошибке.
Что случилось? Как это исправить?
Спасибо ~