DOS下BIOS中断INT13H、IO端口直接编程读取IDE、SATA硬盘的参数和TC语言程序.pdf

DOS下BIOS中断INT13H、IO端口直接编程读取IDE、SATA硬盘的参数和TC语言程序.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DOS下BIOS中断INT13H、IO端口直接编程读取IDE、SATA硬盘的参数和TC语言程序

DOS 下 BIOS 中断 INT13H、IO 端口直接编程读取 IDE、SATA 硬盘的参数和 TC 语言程序 wxleasyland@ 2015.4 一、 背景 华硕笔记本电脑 A45VD,640GB SATA 机械硬盘放在硬盘位,120GB SSD SATA 硬盘放在光驱位。BIOS 中设置 SATA 为 AHCI 方式 (不是 IDE 兼容方式)。 在 WIN7 看,SATA 控制器是 Intel 7 Series/C216 Chipset Family SATA AHCI Controller,硬件 ID 是 VEN_8086DEV_1E03CC_010601, 位置在 PCI 总线 0,设备 31,功能 2。 640GB 机械硬盘是在 CHANNEL0 (通道 0,即安装在SATA 控制器接口 PORT0 上)。 120GB SSD硬盘是在通道 2 (即安装在 SATA 控制器接口 PORT2 上)。 SSD 设置成为启动盘。因为BIOS 启动设置是 SSD 硬盘,故在 DOS 下,机械硬盘就排第 2 了,即磁盘号 81H。 以下均是对 640GB 机械硬盘进行分析。 二、 INT 13H 传统中断,AH=08H (1) 读取驱动器参数 AH=08H 入口: DL=驱动器,00H~7FH:软盘;80H~0FFH:硬盘 返回: CF=1——操作失败,AH=状态代码 CF=0 成功 BL=01H — 360K =02H — 1.2M =03H — 720K =04H — 1.44M =05H ?? =06H 2.88M =10H ATAPI 可移动介质 CH=最大柱面号的低8 位 low eight bits of maximum cylinder number (柱面号从 0 开始算) CL 的位 7-6=最大柱面号的高 2 位 high two bits of maximum cylinder number CL 的位 5-0=最大扇区号 maximum sector number (扇区号从 1 开始算) DH=最大磁头号 maximum head number (磁头号从 0 开始算) DL=驱动器数 number of drives ES:DI=磁盘驱动器参数表地址 (只软驱) (2) 注意: 1. 得到的数值是 “编号”、不是 “总个数”! “总个数”是 number of ... “编号”是 xxx number 扇区号从 1 开始,故扇区数=最大扇区号 磁头号从 0 开始,故磁头数=最大磁头号+1 2. BIOS 保留最后 1 个柱用于测试目的,这个柱不报告出来,而且柱面号从 0 开始,所以 柱面总个数=最大柱面号+2 ! There is one test cylinder, It is last cylinder on drive, which is always reserved for test purposes, and therefore not reported by BIOS to be. (这点说明在 /46-asm/16321e22892a8381.htm) 这两点说明看似简单,但是是经过研究很久才知道的 !!! (3)实测 U 盘软驱启动,98 版 DOS 下 DEBUG,INT13H,AH 08H ,DL=81H 硬盘: 得到 AX=0,BX=0,CH=FE (1022,即 0~1022+1柱号),CL=FF (63,即 1~63 扇号),DH=FE (254,即 0~254 头号),DL=2 (即 2 个硬 盘),ES:DI 没有数据。 即 1024柱×255 头×63 扇,合 8.4G 硬盘,总容量不一致。 可以看出,除柱面个数外,磁头数、扇区数与后面 DISKMAN 一致。 可以将柱面个数单独计算,柱面个数=实际 LB

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档