中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 如何用汇编读写大于1024磁道的大容量硬盘?[注意]
作者:
标题: 如何用汇编读写大于1024磁道的大容量硬盘?[注意] 上一主题 | 下一主题
yyuan_sh
初级用户




积分 161
发帖 14
注册 2003-6-4
状态 离线
『楼 主』:  如何用汇编读写大于1024磁道的大容量硬盘?[注意]

[B]谁知道如何用汇编读写大于1024磁道的大容量硬盘?即扩展的int 13h功能调用。[/B]

2003-6-30 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Qb45
高级用户




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

首先感谢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容量的限制。



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

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


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



论坛跳转: