为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

也谈硬盘参数测试t2gg

2017-03-23 2页 doc 6KB 8阅读

用户头像

is_009226

暂无简介

举报
也谈硬盘参数测试t2gg也谈硬盘参数测试t2gg    《世界月刊》1995年第八期上刊登了李宇先生的一篇文章,介绍了测试PC机软硬盘参数的方法。文中介绍的读取硬盘参数的方法是通过读取并分析硬盘主引导记录Masterboot record来取得硬盘信息的。此方法适用范围比较广。事实上由于现在很多PC都使用IDE型的硬盘,因此,我们也可以通过直接编程IDE控制器的方法获得硬盘参数。下面简单介绍一下这个方法,并给出一个汇编程序供大家参考。 IDE(Integrated Drive Electronics)有时也被称为ATAPI型控制器。此种控制器速度快,...
也谈硬盘参数测试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 1.0',0dh,0ah db 'Copyright (c) 1995 by LiChunsheng',0dh,0ah db 'All rights reserved.' db 0dh,0ah,0ah,'Model Number......' iofm dw 14h dup(2020h) db 0dh,0ah,'Firmware Revision....' dw 4 dup(2020h) db 0dh,0ah,'Serial number......' dw 0ah dup(2020h) db 0ah db 0dh,0ah,'Cylinders......' nofcdb 5 dup(20h) db 0dh,0ah,'Heads......' db 5 dup(20h) db 0dh,0ah,'Sectors per track...' db 5 dup(20h) db 0dh,0ah,'Bytes per track....' db 5 dup(20h) db 0dh,0ah,'Bytes per sector....' db 5 dup(20h) db 0dh,0ah,'Buffer size(KB).....' db 5 dup(20h) db 0dh,0ah,'ECC bytes......' db 5 dup(20h) db 0dh,0ah,'Drive capacity......' db 5 dup(20h) db 'MB',24h addrdb 2,6,12,8,10,42,44 addr1dw 36h,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,11000000b cmp al,01000000b jz d-rdy loop mloop2 jmp time-out d-rdy:mov al,0 mov dx,3f6h out dx,al mov si,offset cmd mov al,byte ptr and al,1 mov cl,4 shl al,cl or al,0a0h mov byte ptr,al mov dx,1f1h mov cx,7 mloop3: lodsb out dx,al inc dx loop mloop3 dec dx xor cx,cx mloop4: in al,dx and al,10001000b cmp al,00001000b jz readdata loop mloop4 jmp time-out readdata: cli cld mov dx,1f0h mov di,offset hdinfo mov cx,100h repz insw sti mov dx,1f7h in al,dx and al,71h xor al,50h jnz errend mov si,offset addr mov di,offset nofc add di,4 mov bh,0 mov cx,7 mloop6: mov bl,byte ptr mov dx,word ptr call dec160 inc si add di,28 loop mloop6 mov ax,1 mov si,offset addr mov cx,3 mloop7: mov bl,byte ptr mul word ptr inc si loop mloop7 mov bx,2048 div bx mov dx,ax call dec160 mov bx,offset hdinfo mov si,offset addr1 mov di,offset iofm mov cx,3 mloop8: push cx push bx add bx, mov cx, add si,4 mloop9:mov ax,word ptr xchg ah,a1 stosb mov al,ah stosb add bx,2 loop mloop9 pop bx pop cx add di,23 loop mloop8 mov dx,offset copy jmp endproc time-out: mov dx,offset t-o-msg jmp endproc errend: mov dx,offset errmsg endproc: mov ah,09h int 21h mov ah,4ch int 21h mainendp end main   作者:李春生 
/
本文档为【也谈硬盘参数测试t2gg】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索