通过硬盘控制器端口读扇区数据
使用LBA逻辑块编址中的LBA28,步骤如下
1. 设置读取的扇区数量,这个数值要写入0x1f2端口,这是一个8位端口
mov dx, 0x1f2
mov al, 0x01 ;表面写入一个扇区
out dx, al ;in或者out只能用ax,dx,立即数
每读一个扇区这个值都将减1
2. 设置起始LBA扇区号
扇区都是连续的所以只需要提供开头扇区号,一共需要28位的扇区号,超过端口的大小,需要分成4段,分别是0x1f3,0x1f4,0x1f5,0x1f6,依次是0~7位,8~15位…
mov dx, 0x1f3 ;这个例子是将0x02作为扇区号
mov al, 0x02
out dx, al