硬盘问题

类库 2001-11-27 12:48:42
硬盘共有几个磁头,是不是不同的类型的硬盘磁头个数不一定的,操作系统怎么对硬盘进行操作的,是不是要为每中类型的硬盘写一个驱动程序?
...全文
88 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hypmonkey 2001-12-16
  • 打赏
  • 举报
回复
哦,看看
seagle 2001-12-13
  • 打赏
  • 举报
回复
在FIDISK.COM 中有一段程序是做为主引导用的可以获的,
A>debug
-n fdisk.com
-L 100
-rcx ;查看文件大小
1ffd
:200
-s 100 20fd fa 33 c0 8e ;搜索主引导记录的特征子
xxxx:1cad
-d 1cad: 1ead
-n boot.dat
-w 1cad
-q
这时候的到的主引导程序所有的硬盘参数都是零,所以下一步要取该盘的实际参数,程序如下。
A>DEBBU
-A
MOV AH, 08 ;8号功能调用
MOV DL,80 ;当前硬盘
INT 13 ;执行中断,DL=硬盘个数,DH=最大磁头号,也就是面号
MOV BL, CL
XOR BH, BH
AND CL, 3F ;计算出每磁道扇区数(BX),放在CL的低六位中。
PUSH CX
MOV AH, CL ;磁道的低2位在CL的高2位中这在分区表中可以看到
MOV AL, CH ;CH=磁道的低8位
MOV AL, 6
SHR AH, CL ;AH 向右移6位,则AX=XXXXXXYY,YYYYYYYY 为最大柱面号

POP CX
INT 3
-G
AX=XXXX BX=XXXX ;AX=最大柱面号,BX=每道扇区号
CX=XXXX DX=XXXX ;CX,DL=硬盘个数,DH=最大磁头号
Q

这个程序不但可以得到当前机器上的硬盘参数,如果一些机器上的CMOS 乱了,也可以用该方法来取得参数,然后,根据这些参数设置相应的磁盘号,有了主引导程序和参数,就可以将参数写到程序中去,程序如下:
A》DEBUG
-N BOOT.DAT
-L 200
-E 21BC
80 01 00 01
将从地址2000 处开始的512个字节用写磁盘程序写入主引导区在写的时候要注意的是
内存的数据与实际的存放次序不一样,例如,十六进制的 00 00 A3 07,先存放低字节为
A3 07 00 00
然后在先存低字节成为07 A3 00 00。
好了完了,


seagle 2001-12-09
  • 打赏
  • 举报
回复
用DEBUG 就可以了
读取和恢复都很短的一段程序
seagle 2001-12-09
  • 打赏
  • 举报
回复
是呀,用汇编可以的很容易我下午还在看呀 ,是一本叫<<计算机维护技术>>的书,是清华的.不过我还不是很清楚,因为不太好急而且我记性不好 ..~-~
CodeDemon 2001-12-08
  • 打赏
  • 举报
回复
在WINDOWS下也有取磁头个数的函数,具体怎么拼的忘记了,改天给你答案.
CNer 2001-12-08
  • 打赏
  • 举报
回复
你可以读一下看看啊。
y_and_y 2001-12-08
  • 打赏
  • 举报
回复
to asmcos(hjs) :能不能讲的详细点呀,"1f0信息就可以得到 512字节的详细信息 "是什么
意思?
asmcos 2001-11-30
  • 打赏
  • 举报
回复
硬盘端口 1f7 控制,1f0信息就可以得到 512字节的详细信息
CNer 2001-11-27
  • 打赏
  • 举报
回复
是的,现在不是讲单碟容量多少多少么。
总容量除以单碟容量不就是。。。。。
操作系统(dos可能是通过bios的。win有专门的方法读取硬盘数据的。)
我记得bios里有个中断可以得到hd的磁头,磁住等信息的。
是直接端口读写的。

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧