关于int 13h硬盘读写的问题
assume cs:code,ds:datadata segment
buffer db 512 dup(0)
filename db 'D:\bootse.txt',0
data ends
code segment
start:
mov ax,data
mov ds,ax
mov es,ax
mov bx,offset buffer
mov ah,2
mov al,1
mov ch,0
mov cl,1
mov dh,0
mov dl,80h
int 13h ;boot sector写入buffer
mov ah,3ch
mov dx,offset filename
mov cx,0
int 21h ;建立文件
mov bx,ax
mov ah,40h
mov cx,512
mov dx,offset buffer
int 21h ;buffer中的内容写入文件
mov ah,3eh
int 21h ;关闭文件
mov ax,4c00h
int 21h
code ends
end start
以上程序在 Virtual PC的虚拟DOS下运行,运行后出现问题。DOS马上死了。
还有,如果将 “mov dl,80h”改成“mov dl,81h”以后,程序虽然能正常运行,但是结果表明程序并没有读取硬盘扇区。请问只是为什么?