| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1783 人关注过本帖
标题:关于int 13h硬盘读写的问题
只看楼主 加入收藏
cxbszd
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-8-12
收藏
 问题点数:0 回复次数:2 
关于int 13h硬盘读写的问题
assume cs:code,ds:data
data 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”以后,程序虽然能正常运行,但是结果表明程序并没有读取硬盘扇区。请问只是为什么?
搜索更多相关主题的帖子: 汇编 int 13h 硬盘读写 
2008-08-25 13:11
ONEPROBLEM
Rank: 6Rank: 6
来 自:广西 南宁
等 级:贵宾
威 望:21
帖 子:1569
专家分:349
注 册:2008-7-11
收藏
得分:0 
LZ,我有心顶帖,可却没那水平啊~~~唉,尽力回答一下,给自己捞点分得了~~LZ看了之后别笑我菜啊~~
Virtual PC的虚拟DOS ?这是什么?它是不是得在WINDOWS下运行?是的话,我觉得操作系统是不会允许你读取C盘Master Boot Record 的。这也许就是保护模式在后台作怪。毕竟,无论怎么虚拟DOS,最终还是建立在保护模式基础上的。这有点像你在WINDOWS下可以格式化D E F 盘,如果格式化C盘就不行。
如果将 “mov dl,80h”改成“mov dl,81h”。是改成了要读取D盘吧?但是,D盘却不是从0磁头、0柱面、1扇区开始的呀?(个人看法)也许是从1磁头、277柱面、1扇区开始的~~于是就可能“结果表明程序并没有读取硬盘扇区”了。
2008-08-25 15:36
woami66
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2008-2-29
收藏
得分:0 
这个程序在纯DOS下应该可以运行
2008-08-25 15:36
快速回复:关于int 13h硬盘读写的问题
数据加载中...
 
   



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

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