《Linux内核设计的艺术》学习笔记(二)INT 0x13中断

  参考资料:

  1. 《IBM-PC汇编语言程序设计》

  2. http://blog.sina.com.cn/s/blog_5028978101008wk2.html

  3. http://www.ctyme.com/intr/int-13.htm

   ◆ 磁盘复位:

  功能号:AH = 00H

  调用参数:DL = 驱动器号 (00H~7FH为软盘;80H~0FFH为硬盘)

  返回参数:读成功 ⇒ AH = 00H, CF = 0 

         读失败 ⇒ AH = 错误码 

  ◆ 读磁盘状态:

  功能号:AH = 01H

  返回参数:AH = 状态字节

  ◆ 读磁盘扇区:  

  功能号:AH = 02H

  调用参数:AL = 扇区数

         CX中的0~5位代表扇区号,CX中的6~15位代表柱面号(其中,CL的6~7为柱面数的高两位,CH存低8位)

         DH/DL = 磁头号/驱动器号

       ES:BX = 数据缓冲区地址

  返回参数:读成功 ⇒ AH = 00H, AL = 读取的扇区数,CF = 0

         读失败 ⇒ AH = 错误码

  ◆ 写磁盘扇区:

  功能号:AH = 03H

  调用参数:AL = 扇区数

       CX中的0~5位代表扇区号,CX中的6~15位代表柱面号

       DH/DL = 磁头号/驱动器号

       ES:BX = 数据缓冲区地址

  返回参数:写成功 ⇒ AH = 00H, AL = 写入的扇区数,CF = 0

         写失败 ⇒ AH = 错误码

   ◆ 检查磁盘扇区:

  功能号:AH = 04H

  调用参数:AL = 扇区数

       CX中的0~5位代表扇区号,CX中的6~15位代表柱面号

       DH/DL = 磁头号/驱动器号

  返回参数:成功 ⇒ AH = 00H, AL = 被检查的扇区数,CF = 0

         失败 ⇒ AH = 错误码

   ◆ 格式化磁盘扇区:

  功能号:AH = 05H

  调用参数:AL = 扇区数

       CX中的0~5位代表扇区号,CX中的6~15位代表柱面号

       DH/DL = 磁头号/驱动器号

       ES:BX = 格式化参数表指针

  返回参数:成功 ⇒ AH = 00H,CF = 0

         失败 ⇒ AH = 错误码 

  ◆ 读取驱动器参数:

  功能号:AH = 08H

  调用参数:DL = 驱动器号

       ES:BX = 格式化参数表指针

  返回参数:成功 ⇒ BL = 磁盘大小,CX中的0~5位存扇区数,CX中的6~15位存柱面号,DH/DL = 磁头数/驱动器数,ES:DI = 磁盘驱动器参数列表地址

         失败 ⇒ AH = 错误码,CF = 1

  ◆ 读取磁盘类型:

  功能号:AH = 15H 

  调用参数:DL = 驱动器号

       ES:BX = 格式化参数表指针

  返回参数:成功 ⇒ AH = 类型码,01H 无变线支持的软驱,02H 带线支持的软驱,03H 硬盘驱动器;CX:DX = 512字节扇区的个数。

         失败 ⇒ AH = 错误码,CF = 1

原文地址:https://www.cnblogs.com/AmitX-moten/p/4823598.html