![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-15 04:25 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » 读取硬盘主引导区的源程序 |
| 可打印版本 1,039 / 4 |
| 第1楼 qb45 | 发表于 2003-09-20 00:00 |
| 高级用户 发帖 194 积分 677 | |
|
读取硬盘主引导区的源程序 '$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编写通过! 希望网友多多支持! |
|
| 第2楼 qb45 | 发表于 2003-09-30 00:00 |
| 高级用户 发帖 194 积分 677 | |
|
说明: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处开始写 我是新来的,请大家还回几篇帖子啊!就是批评我也高兴啊!别让我感觉这里空荡荡的! |
|
| 第3楼 iceboy | 发表于 2003-10-03 00:00 |
| 银牌会员 发帖 512 积分 1,681 | |
|
发现一个小问题:RegType 中不包含 es,应该用 RegTypeX (我是用的 QBX 7.1),还有应该说明编译是应该加 /l 参数。
这个程序很好啊,在 Win2000 下的提示好酷啊:该程序试图直接访问硬盘... |
|
| 第4楼 cn_archer | 发表于 2003-10-03 00:00 |
| 元老会员 发帖 991 积分 2,903 来自 福建省 | |
|
IceBoy好样的!
|
|
| 第5楼 lemonhall | 发表于 2003-10-04 00:00 |
| 高级用户 发帖 183 积分 639 | |
|
呵呵,事实上它在FREEDOS下也容易破坏引导记录,还好只是读。
QB45可能总是用BATCH起QB4。5的,而且有编译BASIC的习惯, 所以忘写了/L参数,:)??? |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |