![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-15 04:56 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » 如何用汇编读写大于1024磁道的大容量硬盘?[注意] |
| 可打印版本 1,044 / 1 |
| 第1楼 yyuan_sh | 发表于 2003-06-30 00:00 |
| 初级用户 发帖 14 积分 161 | |
|
如何用汇编读写大于1024磁道的大容量硬盘?[注意] 谁知道如何用汇编读写大于1024磁道的大容量硬盘?即扩展的int 13h功能调用。
|
|
| 第2楼 qb45 | 发表于 2003-09-15 00:00 |
| 高级用户 发帖 194 积分 677 | |
|
首先感谢ATLaS,在他告诉我的网址里找到了扩展INT13的详细资料,
读AH=42H、写AH=43H、取磁盘参数AH=48、DS:SI=数据包(而不采用寄存器) 相关知识: 我们知道硬盘的容量和扇区都是由三个数值决定,它们分别是柱面数(Cylinder)、磁头数(Head)、扇区数(Sector),简称CHS。ATA规范规定的接口CHS寄存器配置是28bit,也就是C:16bit;H:8bit;S:4bit。我们应该记得很多年前的8.4GB硬盘限制的问题吧,那时候的操作系统访问硬盘需要通过DOS下的INT13 API接口,虽然硬盘的CHS寄存器是28bit,但是瓶颈在于INT13 API的C:10bit;H:8bit;S:6bit,这样能访问的最大容量也就是210×28×(26-1)=16515072个扇区,第一个扇区不能为0,所以减去1。每扇区是512字节,所以最大容量就是8.46 GB(硬盘厂商都是以1000为换算单位),这样就产生了8.4容量的限制。 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |