也谈硬盘参数测试t2gg.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
 也谈硬盘参数测试t2gg

也谈硬盘参数测试t2gg《计算机世界月刊》1995年第八期上刊登了李宇先生的一篇文章,介绍了测试PC机软硬盘参数的方法。文中介绍的读取硬盘参数的方法是通过读取并分析硬盘主引导记录Masterboot record来取得硬盘信息的。此方法适用范围比较广。事实上由于现在很多PC都使用IDE型的硬盘,因此,我们也可以通过直接编程IDE控制器的方法获得硬盘参数。下面简单介绍一下这个方法,并给出一个汇编程序供大家参考。 IDE(Integrated Drive Electronics)有时也被称为ATAPI型控制器。此种控制器速度快,集 成度高,在PC机中应用广泛。我们可以通过一些IDE控制命令来完成硬盘的读/写/校验等各种操作。本文仅介绍其中的硬盘测试命令--0ECH。表1列出了IDE控制器的端口寄存器分配及功能,其中主状态寄存器(1F7H)的各位定义如表2。 表1 IDE端口寄存器地址及功能表2 硬盘控制寄存器(3F6H)各位定义如表3。 表3 输出IDE控制命令可采用下列步骤: (1)向端口3F6H写入控制字节,建立相应的硬盘控制方式; (2)检验控制器和驱动器的状态(通过检测端口1F7H的B7、B6两位),若控制器空闲且驱动器就绪,即可输出命令; (3)完整地输出7B长的命令块,依次写入端口1F1H-1F7H,不论是否需要,端口1F1H-1F6H对应的前6B参数必须输出,端口1F7H输出命令码0ECH; (4)检测端口1F7H的B7、B3位,若控制器空闲且B3置1,表示操作结束,即可读取结果; (5)通过端口1F0H独取100H字至缓冲区; (6)再次读取端口1F7H,判断B0位是否为0,若B0=0,表示命令成功,否则表示命令失败,转至错误处理; (7)通过表4所示的偏移量,读取我们所需的信息并转换成可显示的信息。 表4 源程序如下。 .MODEL SMALL .286 .DATA copydb IDE hard drive identify program ,0dh,0ah db Copyright (c) 199by LiChunsheng,0dh,0ah db All rights reserved. db 0dh,0ah,0ah,Model Number...... iofm dw 14h dup(2020h) db 0dh,0ah,Firmware Revision.... dw dup(2020h) db 0dh,0ah,Serial number...... dw 0ah dup(2020h) db 0ah db 0dh,0ah,Cylinders...... nofcdb dup(20h) db 0dh,0ah,Heads...... db dup(20h) db 0dh,0ah,Sectors per track... db dup(20h) db 0dh,0ah,Bytes per track.... db dup(20h) db 0dh,0ah,Bytes per sector.... db dup(20h) db 0dh,0ah,Buffer size(KB)..... db dup(20h) db 0dh,0ah,ECC bytes...... db dup(20h) db 0dh,0ah,Drive capacity...... db dup(20h) db MB,24h addrdb,6,12,8,10,42,44 addr1dw6h,14h,2eh,04h,14h,0ah cmddb 0,0,0,0,0,0,0ech hdinfodw 100h dup(?) t-o-msg db Time out of range!!!,0dh,0ah,24h errmsg db Error!!!,0dh,0ah,24h .CODE dec160PROC push di push dx push cx push ax mov al,20h std cmp dx,9999 ja dloop stosb cmp dx,999 ja dloop stosb cmp dx,99 ja dloop stosb cmp dx,9 ja dloop stosb dloop:mov ax,dx mov dx,0 mov cx,10 div cx xchg ax,dx add al,30h stosb cmp dx,0 jnz dloop pop ax pop cx pop dx pop di cld ret dec160endp mainPROC mov ax,@DATA mov ds,ax mov es,ax mloop1: mov cx,0 mov dx,1f7h mloop2:in al,dx and al,110000

文档评论(0)

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

1亿VIP精品文档

相关文档