Content #
至于“INT 0x13”这个指令,这是要调用BIOS的0x13号函数,❏ 磁盘读、写,扇区校验(verify),以及寻道(seek) AH=0x02;(读盘) AH=0x03;(写盘) AH=0x04;(校验) AH=0x0c;(寻道) AL=处理对象的扇区数;(只能同时处理连续的扇区) CH=柱面号 &0xff; CL=扇区号(0-5位)|(柱面号&0x300)>>2; DH=磁头号; DL=驱动器号; ES:BX=缓冲地址;(校验及寻道时不使用) 返回值: FLACS.CF==0:没有错误,AH==0 FLAGS.CF==1:有错误,错误号码存入AH内(与重置(reset)功能一样)调用这个函数之后,如果没有错,进位标志就是0;如果有错,进位标志就是1。这样就要用JC指令来跳转。
在有多个软盘驱动器的时候,用磁盘驱动器号来指定从哪个驱动器的软盘上读取数据。现在的电脑,基本都只有1个软盘驱动器,而以前一般都是2个。既然现在只有一个,那不用多想,指定0号就行了
mov ax, 0x0820
mov es, ax
mov ch, 0 ; 柱面号
mov dh, 0 ; 磁头号
mov cl, 2 ; 起始扇区号
mov al, 1 ; 扇区数
mov ah, 0x02 ; 功能号
mov bx, 0 ; 缓冲区地址
mov dl, 0 ; 驱动器号
int 0x13 ; 调用BIOS中断
jc error
From #
30天自制操作系统