标题: 如何用汇编读写大于1024磁道的大容量硬盘?[注意]
[打印本页]
作者: yyuan_sh
时间: 2003-6-30 00:00
标题: 如何用汇编读写大于1024磁道的大容量硬盘?[注意]
[B]谁知道如何用汇编读写大于1024磁道的大容量硬盘?即扩展的int 13h功能调用。[/B]
作者: Qb45
时间: 2003-9-15 00:00
首先感谢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容量的限制。