我们使用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

|