全站数据
8 4 2 0 5 8 1

如何在硬盘指定lba写入文件

建筑行业 | 简单学习,快乐成才!         
问题更新日期:2024-10-15 21:17:12

问题描述

如何在硬盘指定lba写入文件希望能解答下
精选答案
最佳答案

对硬盘进行操作的常用端口是1f0h~1f7h号端口,各端口含义如下:

端口号 读还是写 具体含义

1F0H 读/写用来传送读/写的数据(其内容是正在传输的一个字节的数据)

1F1H 读 用来读取错误码

1F2H 读/写用来放入要读写的扇区数量

1F3H 读/写用来放入要读写的扇区号码

1F4H 读/写用来存放读写柱面的低8位字节

1F5H 读/写用来存放读写柱面的高2位字节(其高6位恒为0)

1F6H 读/写用来存放要读/写的磁盘号及磁头号

第7位 恒为1

第6位 恒为0

第5位 恒为1

第4位 为0代表第一块硬盘、为1代表第二块硬盘

第3~0位用来存放要读/写的磁头号

1f7H 读 用来存放读操作后的状态

第7位 控制器忙碌

第6位 磁盘驱动器准备好了

第5位 写入错误

第4位 搜索完成

第3位 为1时扇区缓冲区没有准备好

第2位 是否正确读取磁盘数据

第1位 磁盘每转一周将此位设为1,

第0位 之前的命令因发生错误而结束

写 该位端口为命令端口,用来发出指定命令

为50h 格式化磁道

为20h 尝试读取扇区

为21h 无须验证扇区是否准备好而直接读扇区

为22h 尝试读取长扇区(用于早期的硬盘,每扇可能不是512字节,而是128字节到1024之间的值)

为23h 无须验证扇区是否准备好而直接读长扇区

为30h 尝试写扇区

为31h 无须验证扇区是否准备好而直接写扇区

为32h 尝试写长扇区

为33h 无须验证扇区是否准备好而直接写长扇区