中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 读取硬盘主引导区的源程序 上一主题 | 下一主题
qb45
高级用户




积分 677
发帖 194
注册 2003-9-13
状态 离线
『楼 主』:  读取硬盘主引导区的源程序

'$INCLUDE: 'qb.bi'
DIM SHARED ax, bx, cx, dx, es
buff$ = SPACE$(512) '设置磁盘缓冲区
bx = SADD(buff$)   '获得缓冲区的偏移地址
es = VARSEG(buff$) '获得缓冲区的段址
OPEN "savehd.dat" FOR BINARY AS #1
ax = &H201
cx = 1
dx = &H80
int13     ' 调用13号中断      
PUT #1, , buff$
CLOSE #1
PRINT "硬盘主引导区已被成功的保存到SAVEHD.DAT文件中!"
END

SUB int13
InRegs.ax = ax
InRegs.bx = bx
InRegs.cx = cx
InRegs.dx = dx
InRegs.es = es
INTERRUPTX &H13, InRegs, OutRegs
ax = OutRegs.ax
bx = OutRegs.bx
cx = OutRegs.cx
dx = OutRegs.dx
es = OutRegs.es
END SUB

此程序用qb4.5编写通过!
希望网友多多支持!



我(QB45)的照片与简历
http://www.programfan.com/club/showbbs.asp?id=197280
2003-9-20 00:00
查看资料  发送邮件  发短消息 网志  OICQ (406930019)  编辑帖子  回复  引用回复
QB45
高级用户




积分 677
发帖 194
注册 2003-9-13
状态 离线
『第 2 楼』:  

说明:INT 13 中断 AH=2 读  AL = 要读的扇区数 BX=缓冲区的地址 CL=开始的扇区号
DL=要操作的盘。
用DEBUG就很简单了
A
MOV AX,201
MOV BX,200
MOV CX,1
MOV DX,80
INT 13
INT 3
G    ‘这时硬盘的主引导区的内容已经读出
N  HDBOOT。DAT   ’要保存的文件名
RCX 200   ‘文件的大小   
W 200    ’从地址200处开始写

我是新来的,请大家还回几篇帖子啊!就是批评我也高兴啊!别让我感觉这里空荡荡的!










我(QB45)的照片与简历
http://www.programfan.com/club/showbbs.asp?id=197280
2003-9-30 00:00
查看资料  发送邮件  发短消息 网志  OICQ (406930019)  编辑帖子  回复  引用回复
iceboy
银牌会员




积分 1681
发帖 512
注册 2003-8-2
状态 离线
『第 3 楼』:  

发现一个小问题:RegType 中不包含 es,应该用 RegTypeX (我是用的 QBX 7.1),还有应该说明编译是应该加 /l 参数。

这个程序很好啊,在 Win2000 下的提示好酷啊:该程序试图直接访问硬盘...



Somehow somewhere I've got to choose.
No matter if it is win or lose.
2003-10-3 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
cn_archer
元老会员

农民


积分 2903
发帖 991
注册 2003-7-23
来自 福建省
状态 离线
『第 4 楼』:  

IceBoy好样的!



艰难奋长戟,万古用一夫

中国DOS联盟  http://www.cn-dos.net   欢迎大家来共同学习
我的MSN&E-Mail cn_archer@hotmail.com  QQ 56049418
2003-10-3 00:00
查看资料  发送邮件  发短消息 网志  OICQ (56049418)  编辑帖子  回复  引用回复
lemonhall
高级用户

OS/2女孩


积分 639
发帖 183
注册 2003-6-14
状态 离线
『第 5 楼』:  

呵呵,事实上它在FREEDOS下也容易破坏引导记录,还好只是读。
QB45可能总是用BATCH起QB4。5的,而且有编译BASIC的习惯,
所以忘写了/L参数,:)???



REM              喜欢DOS,因为它的简单
REM            喜欢OS/2,因为它不再矫饰
REM            喜欢BASIC,因为它并不幼稚
REM             喜欢GNU,因为它杂乱无章
2003-10-4 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (313813)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: