1
我簡單的代碼:如何解決'LOCK前綴不允許(op1 = 0x53,attr = 0x0,mod = 0x0,nnn = 0)'?
[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錯誤狀態不是由錯誤信息停止。
發生了什麼事?如何修復它?
謝謝〜
非英文字母只是代碼註釋嗎? – 2012-01-01 07:03:31
我認爲你應該將你的(中文?)評論翻譯成英文,因爲這是一個英語口語論壇,評論有助於理解代碼。 – 2012-01-01 07:06:57
即使他們只是*評論,我認爲這些評論是有原因的,也許可以幫助讀者理解代碼的目的。因此,在發佈到英文問答網站時翻譯它們是有意義的。投票結束爲「太本地化」。 – 2012-01-01 07:08:00