教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 论文> 其他论文> 如何测试软硬盘驱动器参数

如何测试软硬盘驱动器参数

上传者:网友
|
翻新时间:2013-12-18

如何测试软硬盘驱动器参数

如何测试软硬盘驱动器参数 如何测试软硬盘驱动器参数 如何测试软硬盘驱动器参数

一、如何测试驱动器类型

随着PC硬件的高速发展,各种应用软件对外设的要求亦不断提高,这使得有些软件的设计者在开发软件时需要对主机的配套设备进行检查,以便能更好地利用这些设备。如对处理器CPU及协处理器的检测、对驱动器的检测等等。对于上述的测试,除CPU及协处理器的测试方法已有不少文章论述过外,还很少有对驱动器测试的论述。本文将详细介绍如何测试驱动器,并给出相应的子程序源码,读者可根据需要将其变成一独立程序,也可将其加入到自己的应用程序中去。

在提供的测试驱动器子程序中,使用了DOS INT 21h 的设备管理功能调用 44XXh(IOCTL)的两个子功能:AX=4409h 和AX=440Dh。通过对What-Drv子程序的调用,可得到指定驱动器的类型。该测试子程序的调用方式为:

输入:AL=驱动器标号(A,B,C,...)

程序:CALL What-Drv

输出:CF= 0 成功

AL= 驱动器类型(提供之源码中有各种类型说明)

DS:DX= Device-Params读取参数缓冲区,共有32Bytes长度

CF= 1失败

AX=错误代码

1.测试指定驱动器状态

本子功能是测试所指定驱动器是否为单机或网络之共享状态输入:AX= 4409h中断:INT 21h

输出:CF= 0成功

DX=返回状态(这里仅讨论DX寄存器的Bit12,在返回的参数中,DX还有其它许多状态值,本节将不在此讨论)

若Bit12=0,则为单机状态

Bit12=1,则为服务器共享状态

CF= 1失败

AX=错误代码

2.读取指定驱动器参数

本子功能将读出指定驱动器的各种参数,包括驱动器类型、文件分配表FAT大小,根目录ROOT大小,及其它BPB各种磁盘参数。本子程序仅读取驱动器类型参数。

输入:AX= 440Dh,CX= 0860h 这里 CH=08h表示磁盘驱动器

CL=60h表示读取驱动器参数

DS∶DX=Device-Params指向读取参数缓冲区,共有32 Bytes长度

中断:INT 21h

输出:CF= 0成功

DS∶DX=缓冲区包含读出驱动器参数

CF= 1失败

AX=错误代码

3.磁盘参数区@@08a08600.GIF;表1@@

4.测试驱动器源码(程序

1)

程序1:

;------------

; Check Drive Type

;Input: AL=Can be any drive letter(A,B,C..)

;Output: CF=0 Successfully

; AL=drive type will be returned as an

; ERRORLEVEL.

; DS∶DX=Pointer to parameter block

; CF=1 Failed

; all registers restored.

;-----------------

; ERRORLEVEL Result

; --------------

; -1Drive isn′t local

; 0320K/360K 130mm.drive; 2720K 90mm.drive

; 3Single-density 203mm.drive

; 4Double-density 203mm.drive

; 5Hard disk

; 6Type drive

; 71.44M drive

; 8Something else

;------------;

What-drv proc near

push cx ;save registers

push bx

mov bl,almov ax,4409h

;Check workstation /server

push bx

int 21h

pop bx

jb What-error ;Error to exit

test dh,10h ;test server?

jz What-continue

mov al,-1

jmp short What-Exit

What-continue:

mov ax,440dh

mov cx,0860h

;Get device paramters

push cs

pop ds

mov dx,offset Device-params

int 21h

jb What-error ;Error to exit

mov al,[Device-Params+1]

;Get device type

What-Exit:

clc ;Successfully flag

What-error:

pop bx ;recover registers

pop cx

retn

What-drv endp

Device-Params db 32 dup(0)

二、读取硬盘参数

硬盘是主机重要的存储设备,不同厂家,不同大小的硬盘参数均不相同。这里所说的硬盘参数是:磁头数、簇面数和扇区数。本节将给出一个读取硬盘参数的子程序(不含逻辑,即将一个大硬盘分成两个以上分区。当然读者也可修改本程序,以便能识别两个以上分区的硬盘)。在下面的程序中,将首先读取硬盘的主引导区 Master boot record,因为所有的硬盘参数都存放在里面。程序流程如下:

(1) 将指定的物理硬盘主引导区读入缓冲区

(2) 在引导区偏移地址1BEh处获取相应的硬盘参数

(3) 通过计算求得该硬盘的磁头数、簇面数和扇区数

(4) 由得到的硬盘参数求得其容量大小

Get-FdiskParam 子程序调用方式为:

输入:AL=硬盘物理ID号(80h 或 81h)

程序:CALL Get-FdiskParam

输出:CF=0成功

AX= 硬盘容量大小(Hex)

CX= 簇面数

DL=扇区数

DH=磁头数

CF=1 失败

1.硬盘分区表参数@@08A08601.GIF;表2 硬盘分区表参数@@2.硬盘容量计算

通过分区表的参数,还可求得硬盘的容量大小。在提供的程序中对硬盘容量的计算均按16进制方式:3.读硬盘参数源码(程序

2)

程序2:

;----------------

;Get Hard Cyls,Sector,Head,Size

;Input:AL= Fdisk ID(80h,81h)

;Output: CF= 0 successfully

;AX= Fdisk size(Hex)

;CX= Number of Cylinders

:DL= Number of Sectors

;DH= Number of Heads

;CF= 1 failed

;-------------

Get-Fdiskparamproc near

cmp al,80h ;test Fdisk ID

jb Get-FdiskExit

mov cx,cs

mov ds,cx

mov es,cx ;set DS,ES segment

mov dl,al ;Fdisk ID

mov bx,offset Partition-area

mov cx,1

mov dh,0

mov ax,201h ;read partition sector

int 13h

jb Get-FdiskExit ;failed to exit.

mov bx,offset Partiton-area+1beh

mov al,[bx+8] ;Sector counter

mov ah,[bx+5] ;Head counter

mov dl,[bx+7] ;cylinder lower

mov dh,[bx+6] ;cylinder high

mov cx,6

shr dh,cl

inc dx ;get cylinder

push dx ;save cylinder

push ax ;save head & sector

mul ah ;compute Fdisk size

mul dx

mov cx,11

Loop-shift:

shr dx,1

rcr ax,1

loop Loop-shift ;Get Fdisk size

pop dx ;sectors & heads

pop cx ;cylinder counter

clc ;clear CF flag

Get-FdiskExit:

retn

Get-FdiskParamendp

Partition-area db 512 dup(0) ;read Partition buffer

下载文档

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

网友最新关注

转折
情要深深理要昭昭
与你同行
2003湖南优秀作文――勿以亲疏定是非
探知的阻碍
情感的权力
转折
陷阱
既生“亮”,何生“关张”?
转折
《看着我的眼睛》
列车•茶•春花
用双眼看世界
转折
2003年高考上海卷优秀作文--杂而不乱归于大同
党风廉政建设责任制民主评议制度
公司办公用品领用管理
邮政档案保密制度
药监局内部考勤制度
店面员工仪容仪表要求及标准
办公用品采购制度
招待费管理规定
员工招聘管理试行办法
关于狠抓工作落实的意见
公司暂借款管理办法
初级中学家长学校章程
招待管理制度
区政府办公室党支部工作制度
乡开展创“四好”班子学习制度
县科技局工作规则
果树抗旱节水技术
土壤灌溉渗水瓮技术
如何对植物合理灌溉
果园水分管理新技术——果树调亏灌溉
生物节水用技术
西北地区发展节水灌溉的作用与途径
农业节水抗旱措施
滴灌、软管灌推广应用
农田节水措施
微灌系统中过滤设备的应用
山区农业节水方法
国内外节水技术及应用现状
果树节水灌溉应适时适量
微水灌溉技术
十种农业节水技术
《雪地里的小画家》第二组教学设计二
《雪地里的小画家》第二组教学设计一
《比尾巴》 教学设计
《雪孩子》教学设计三
《小小的船》 教学设计
《影子》教学设计
《静夜思》 教学设计
《画》 教学设计一
《画》 教学设计三
《雪孩子》教学设计一
《阳光》 教学设计
《四季》 教学设计一
《画》 教学设计二
《四季》 教学设计二
《小小的船》 教学设计