x86汇编_硬盘控制器端口读取扇区数据

读写指令

1、in OPRD1,OPRD2
将数据从外围设备读入,OPRD2为端口号,OPRD1为cpu内部寄存器

2、in OPRD1,OPRD2
将数据写入外围设备,OPRD2为cpu内部寄存器,OPRD1为外围设备端口号

本质

端口是由外围设备提供的接口,本质上是寄存器,属于外围设备

主硬盘

主硬盘控制器端口共有8个,端口号分别为
0x1f0:16位端口,数据传输端口
0x1f1:错误类型返回
0x1f2:8位端口,设置读取的扇区数量
0x1f3:8位端口,扇区号低0~7位设置端口(LBA28模式)
0x1f4:8位端口,扇区号低8~15位设置端口(LBA28模式)
0x1f5:8位端口,扇区号低16~23位设置端口(LBA28模式)
0x1f6:8位端口,低四位设置扇区号低24~27位设置端口(LBA28模式)
0x1f6:高四位,第7、5位固定为1;第6位 置0表示CHS模式,置1表示LBA模式;第4位 置0表示主硬盘,置1表示从硬盘
0x1f7:8位端口,命令/状态端口;向这个端口传输0x20就表示 请求硬盘读,随后硬盘会每时每刻将它的状态信息传输到这个端口,一旦硬盘准备好了就可以开始传输数据;第7位 置0表示硬盘不忙,置1表示硬盘忙;第3位 置0表示未准备好与主机交换数据,置1 表示准备好与硬盘交换数据;第0位表示前一条命令执行错误,具体原因查看0x1f1端口

从硬盘

从硬盘控制器端口共有8个,端口号分别为0x170,0x171,0x172,0x173,0x174,0x175,0x176,0x177

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值