微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题硬盘参数的快速检测
栏目其它
作者青岛 郭书军
发布1996-11-29
  硬盘参数的检测方法,很多计算机报刊上都有介绍,但不一定可靠。新版ROM BIOS中的自动检测硬盘(AUTO DETECT HARD DISK)功能无疑给使用者带来了很大方便,可惜对于没有该功能的微机,使用者无法自动检测硬盘参数,本文通过对ROM BIOS中自动硬盘功能的分析,总结出硬盘参数的快速检测方法,并给出检测程序,以方便用户使用。
  检测硬盘参数时,首先问硬盘命令/状态端口1F7H发出读硬盘参数命令ECH,延时一段时间后,从硬盘数据端口1F0H读出100H的数据,其中包含有硬盘的三个重要参数:柱面数Cyln)、磁头数(Head)和扇区数(Sect),它们的位置分别是02H、06H和0CH,将这三个参数转换成十进制,并以ASCII码显示出来。根据这三个参数,从ROM BIOS的硬盘设置中找出相应的类型号。如果找不到相应的类型号,则可设置为用户类型(User Type),设置为用户类型时,一般将Wpoom设为65535,LZone的值和柱面数相同,硬盘容量设置程序会根据柱面数,磁头数和扇区数自动算出。
  检测并显示硬盘参数的汇编语言程序如下:
  C:>debug diskinfo.com
  File not found
  -A 100
  100 JMP 116  ;转主程序
  102 MOV CL,OA  ;二__十进制转换子程序
  104 DIV CL
  106 OR AX,3030
  109 PUSH AX
  10A MOV AH,OE
  10C INT 10  ;ASCII显示
  10E POP AX
  10F MOV AL,AH
  111 MOV AH,OE
  113 INT 10
  115 RET
  116 MOV DX,1F7  ;主程序
  11B OUT DX,AL  ;发出命令
  11C MOV AL,10
  11E LOOP 11E  ;延时
  120 DEC AL
  122 JNZ 11E
  124 MOV DX,1F0
  127 MOV DI,180
  12A MOV CX,100
  12D CLI
  12E CLD
  12F REPZ
  130 DB 6D  ;INSW读出数据
  131 STI
  132 MOV SI,180
  135 MOV AX,[SI+2];柱面数
  138 MOV CL,64
  13A DIV CL
  13C PUSH AX
  13D MOV AH,0
  13F CALL 102  ;转换显示
  142 POP AX
  143 MOV AL,AH
  145 MOV AL,0
  147 CALL 102
  14A INT 10
  14E MOV AX,[SI+6]  ;磁头数
  151 CALL 102
  154 MOV AL,20
  156 INT 10
  158 MOV AX,[SI+C]  ;扇区数
  15B CALL 102
  15E INT 20
  RCX
  0000
  :160
  -W
  -Q
  在DEBUG 环境下将上述程序输入计算机,存盘后即可使用。本程序在多种微机上对多种硬盘操作正常。