翻新时间:2023-03-28
也谈硬盘参数测试t2gg
也谈硬盘参数测试t2gg 也谈硬盘参数测试t2gg 也谈硬盘参数测试t2gg 《计算机世界月刊》1995年第八期上刊登了李宇先生的一篇文章,介绍了测试PC机软硬盘参数的方法。文中介绍的读取硬盘参数的方法是通过读取并分析硬盘主引导记录Masterboot record来取得硬盘信息的。此方法适用范围比较广。事实上由于现在很多PC都使用IDE型的硬盘,因此,我们也可以通过直接编程IDE控制器的方法获得硬盘参数。下面简单介绍一下这个方法,并给出一个汇编程序供大家参考。表1 IDE端口寄存器地址及功能表2
"硬盘控制寄存器"(3F6H)各位定义如表3。
表3
输出IDE控制命令可采用下列步骤:
(1)向端口3F6H写入控制字节,建立相应的硬盘控制方式;
(2)检验控制器和驱动器的状态(通过检测端口1F7H的B
7、B6两位),若控制器空闲且驱动器就绪,即可输出命令;
(3)完整地输出7B长的命令块,依次写入端口1F1H-1F7H,不论是否需要,端口1F1H-1F6H对应的前6B参数必须输出,端口1F7H输出命令码0ECH;
(4)检测端口1F7H的B
7、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......'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',24haddr1dw 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
下载文档
网友最新关注
- 放风筝
- 国色天香游记
- 精彩的演出
- 快乐的一天
- 我的“虫”爸爸
- 拔河比赛
- 下雪了
- 春天到了
- 我想……
- 三八妇女节
- 可爱的猪
- 老师是一朵母亲花!
- 假如
- 粗心的我
- 接力赛
- 小学生迎“六一”儿童节作文竞赛方案
- 整治不良风气方案
- 乡镇廉政建设实施意见
- 小学教师新学期计划
- 大学四年个人目标计划
- 大学新任班长新学期工作规划
- 教师读书学习规划
- 教育系统普法教育工作要点
- 教育教学工作执行方案
- 高考安全保卫方案
- 县第六次人口普查户口整顿方案
- 党性分析个人整改措施
- 三年大学生涯个人发展规划
- 六一儿童节活动安全方案
- 关于社会治安综合治理宣传月活动策化方案
- 民事诉讼简易程序比较研究(1)论文
- 村庄选举研究的两种进路
- 意大利法中违约解除效果实证考察(1)论文
- 论我国《公司法》对中小股东权益的保护(1)论文
- 民主制度与经济发展的相互关系
- 大众文化·文化殖民·媒介帝国主义
- 理想与人道的二律背反——解读话剧《切·格瓦拉》
- 依靠直觉进行儿童美术教育的探索
- 市政道路上的井盖致人损害赔偿责任承担问题研究(1)论文
- 我国军婚保护制度的法理解说(1)论文
- 超越主体论文艺学—新整体论文艺学论纲 (会员资料)
- 中国政府体制改革的过去与未来
- 天地大舞台——解析义和团运动戏剧性格的启示
- 作为艺术家的易卜生:易卜生与中国重新思考(会员资料)
- 政府的规模与范围(中)
- 《乌鸦喝水》教案
- 《自己去吧》教学片断及反思
- 《“红领巾”真好》教案
- 《我选我》教案
- 《要下雨了》教案
- 《四个太阳》教学设计
- 《两只小狮子》教案
- 《王二小》教案
- 《阳光》教案(新课标)
- 《比尾巴》教学设计
- 《秋天的图画》教学设计
- 《四季》教案(新课标)
- 《小白兔和小灰兔》教案
- 《小壁虎借尾巴》教案
- 《四季》教学设计(第一课时)