我们使用bios中断13读取磁盘上的指定扇区
buf:是指向将要保存扇区内容的内存区的指针。
drive:是驱动器号0x00:A盘、0x01:B盘、0x80:C盘。
head:磁头号,从0开始
sector:扇区号,从1开始
track:磁道号,从0开始
注意扇区号不能大于一个磁道上的最大扇区号
本程序磁道号不能大于8位
;从磁盘读取指定扇区
;int readfloppy(void *buf, byte drive,
; byte head, byte sector, int track)
readfloppy:
;备份寄存器
push bx
push cx
push dx
push bp
;取得参数
mov bp, sp
add bp, 10
mov bx, [bp];buf
mov dl, [bp+2];drive
mov dh, [bp+4];head
mov cl, [bp+6];sector
mov ch, [bp+8];track
mov ax, 0x0200
add ax, 1
int 0x13
;恢复寄存器
jnc readok
mov al, 0
readok: mov ah, 0
pop bp
pop dx
pop cx
pop bx
ret