我需要能够在汇编中编写程序来读取磁盘的第一个扇区(MBR)并将其写入软盘或至少显示数据。 我知道INT 13h和25h在Windows保护模式下不起作用,我甚至在Dos中尝试了我的代码,但是当我运行程序时dos系统挂起。这是代码:
MOV byte ptr es:[bx], offset result
MOV AL,1 ;number ofsectors to read
MOV Cl,1
MOV ch,0
mov dl,80h ;the HDD
mov dh,1
mov ah,02h
INT 13h
结果是缓冲区变量。
提前致谢。
答案 0 :(得分:1)
我认为这一行是错误的
MOV byte ptr es:[bx], offset result ' attempts to write memory [bx]
应该是
MOV es, segment_offset ' probably not needed
MOV bx, buffer_offset
...
也许您还必须恢复ES
,示例
push es
mov es, ...
...
pop es
' done
答案 1 :(得分:1)
YEB。它终于奏效了。这是代码(仅在DOS中运行,因为INT 13h无法在Windows操作系统中运行。
mov dx,80h
mov cx,1
mov bx,ds
mov es,bx
mov bx,offset result
mov ax,0201h
int 13h