安装一个新的 7CH中断,实现通过逻辑扇区号对软盘进行读写
参数说明:
1.ah寄存器传递功能号:1表示读 0表示写
2.用dx寄存器传递要读写的山区的逻辑扇区号
3.用es:bx指向存储读出数据或写入数据的内存区
逻辑扇区号=(面号*80+磁道号)*18+扇区号-1 因上下两面,每面80磁道,每个磁道18个扇区
提示:用逻辑扇区号计算出面号,磁道号,扇区号后,调用int 13h中断例程进行实际的读写
int():描述性运算符,取商
rem():描述性运算符,取余数
面号=int(逻辑扇区号/1440)
磁道号=int(rem(逻辑扇区号/1440)/18)
扇区号=rem(rem(逻辑扇区号/1440)/18)+1
于int13h中
ch=磁道号
cl=扇区号
dh=面号
dl=驱动器号 0为软驱a 1为软驱b
assume cs:code,ds:data,ss:stack
data segment
db 128 dup(0)
data ends
stack segment
db 128 dup(0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,128(0)
call cpy_new_int7CH
call set_new_int7CH
mov ah,1 ;int 7ch