标题:扩展int13读磁盘的问题?
只看楼主
petsatan
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-5-27
 问题点数:0 回复次数:2 
扩展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
搜索更多相关主题的帖子: 磁盘 
2008-05-27 21:04
soerion
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-5-26
得分:0 
int 13h 用的是es:bx 作为读出来的值的buffer.
你应该把es, bx 赋值, 然后再从es, bx读出数据
2008-05-29 21:00
petsatan
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-5-27
得分:0 
楼上的。。。
你看到功能号是42h啊,
是int13的扩展读功能
你说的是基本读。。。
2008-05-29 21:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-216211-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026147 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved