扩展int13读磁盘的问题?
下面这段代码,无法读出磁盘指定扇区的数据,应该是buf有问题,但是不知道问题究竟出哪了。高手指点一下 。。
datasg segment
tmpbuf db 512 dup(0)
DAP:
packsize db 16
reserved db 0
blockcount dw 1
buffoff dw 0
buffseg dw 0
blocknum dq 1
file db '001 ',0
datasg ends
codesg segment
assume cs:codesg,ds:datasg
start:
mov ax,datasg
mov ds,ax
mov [buffseg],seg tmpbuf
mov [buffoff],offset tmpbuf
mov ah,42h
mov dl,80h
mov si,offset DAP
int 13h
jnc exit
mov dx,offset file
mov cx,0
mov ah,3ch ; ds:dx 文件名 ,创建一个带句柄的文件
int 21h
mov bx,ax ; ax 为文件的句柄
mov dx,0
mov cx,512
mov ah,40h ; cx -- number of bytes to write
; bx -- file handle
; ds:dx -- pointer buffer
int 21h
exit:
mov ah,3eh ; close a file with handle
int 21h
mov ax,4c00h
int 21h
codesg ends
end start