如何通过INT13读取逻辑扇区?用汇编语言写出程序就好了!谢谢了!悬赏30分啊!

来源:百度知道 编辑:UC知道 时间:2024/05/21 18:16:44
如果不方便,讲解一下原理也可以,谢谢了!!!悬赏30分啊!

int13对磁盘读写
以3.5英寸软盘为例
常用的3.5软盘分为上下两面,每面有80个磁道,每个磁道分为
18个扇区,每扇区大小为512B。
则:2面*80磁道*18扇区*512B=1440KB≈1.44MB
磁盘的实际访问由磁盘控制器进行,以扇区为单位对磁盘进行读写
在读写扇区的时候要给出面号,磁道号和扇区号,面号和磁道号从
0开始,而扇区号从1开始。
BIOS提供的访问磁盘的中断例程为int13h。如,读取0面0道1扇区
的内容到0:200
mov ax,0
mov es,ax
mov bx,200h
mov al,1
mov ch,0
mov cl,1
mov dl,0
mov dh,0
mov ah,2
int 13h
入口参数:
ah=int 13h的功能号
al=读取的扇区数
ch=磁道号
cl=扇区号
dh=磁头号(对于软盘即面号,因为一个面用一个磁头来读写)
dl=驱动器号 软驱从0开始,0:软驱A,1:软驱B;硬盘从80h开始,
80h:硬盘C,81h:硬盘D。
es:bx指向接收从扇区读入数据的内存区
返回参数:
操作成功:ah=0,al=读入的扇区数
操作失败:ah=出错代码
将0:200中的内容写入0面0道1扇区
mov ax,0
mov es,ax
mov bx,200h
mov al,1
mov ch,0
mov cl,1
mov dl,0
mov dh,0
mov ah,3
int 13h
入口参数:
ah=int 13h的功能号
al=写入的扇区数
ch=磁道号
cl=扇区号
dh=磁头号(面)
dl=驱动器号 软驱从0开始,0:软驱A,1:软驱B;硬盘从80h开始,
80h:硬盘C,81h:硬盘D。
es:bx指向将写入磁盘