设为首页
联系站长
加入收藏

  格言小语:

励志歌曲版

您现在的位置: 主页 >> 论文 >> 理工论文 >> 计算机论文
  欢迎阅读:也谈硬盘参数测试t2gg
也谈硬盘参数测试t2gg
日期:2006-4-7 15:26:44 来源:论文大全 查看:[ ] 作者:未知  点击:

  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

收藏本页 关闭窗口 返回顶部

·彩色图象的二维变形
·VGA色彩编辑技术
·文本方式下图形提示界面制作
·NetWare与UNIX的互联方法与实现
·Windows NT中的登记项及其完整性
·用C语言实现按钮新技术
·可移植的256色图形用户界面的设计
·深入CD-ROM编程
·STRATEGIES FOR WEB B
·在Windows中显示多幅彩色图像的技术

本栏热门文章

湘ICP备05012498号 

Powered By: CD520.Net