![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-10-31 09:39 |
共 47,815 主题排行 / 349,930 发帖 / 今日 0 篇 / 48,290 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » 扩展INT 13中DAP的数据在内存中的情况??? |
| 可打印版本 1,642 / 2 |
| 第1楼 ilbgh11 | 发表于 2008-09-12 10:35 |
| 初级用户 发帖 21 积分 60 | |
|
扩展INT 13中DAP的数据在内存中的情况??? 我现在知道调用扩展INT13读写硬盘需要下面的参数:
AH=42/43(42读43写) DL=驱动器号 DS:DI=DAP 其中DAP的结构是: BYTE PacketSize; 数据包尺寸(恒为16字节) BYTE Reserved; 保留,必须置0 WORD BlockCount; 要传输的数据块个数(以扇区为单位) DWORD BufferAddr; 传输缓冲地址(segment:offset) QWORD BlockNum; 磁盘起始绝对块地址 现在我想知道,假如我用下面的参数调用扩展INT13: AH=42 DL=80 DS:DI=DAP DS=1000 DI=0000 DAP { PacketSize=16 Reserved=0 BlockCount=1 BufferAddr=2000:0100 BlockNum=7 } 那么,在1000:0000处的数据是什么样子呢? (从1000:0到1000:10的数据依次是什么) 会是下面这个样子吗? 10 00 01 00 00 01 00 20 07 00 00 00 00 00 00 00 这类程序我不常用,现在需要在DEBUG下运行,所以需要知道这些信息 [ Last edited by ilbgh11 on 2008-9-12 at 10:39 AM ] |
|
| 第2楼 cjt211 | 发表于 2008-09-12 14:14 |
| 新手上路 发帖 2 积分 8 | |
|
没有错,表示从lba7的地方读1个扇区到2000:100
|
|
| 第3楼 netwinxp | 发表于 2008-09-15 08:34 |
| 高级用户 发帖 366 积分 741 | |
|
1、注意BlockCount不要超过127。
2、LBA地址是从0开始的。 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |