INT13H 是一个基本的硬盘控制器中断,用于在实模式下进行对硬盘的读写操作。它提供了多个功能来操控硬盘,包括磁盘读、磁盘写、磁盘参数查询等。以下是一些常见的 INT13H 功能

发布时间 2023-09-20 19:56:58作者: suv789

INT13H 是一个基本的硬盘控制器中断,用于在实模式下进行对硬盘的读写操作。它提供了多个功能来操控硬盘,包括磁盘读、磁盘写、磁盘参数查询等。以下是一些常见的 INT13H 功能:

磁盘读取:

功能号 2:从磁盘上读取扇区到内存缓冲区。
寄存器 AH = 02h,AL 表示要读取的扇区数量,CH 表示磁道号,CL 表示扇区号,DH 表示磁头号,DL 表示驱动器号。
输入:ES:BX 指向数据缓冲区。
输出:各寄存器的值表示操作结果。
磁盘写入:

功能号 3:将数据写入内存缓冲区到磁盘的指定扇区。
寄存器 AH = 03h,AL 表示要写入的扇区数量,CH 表示磁道号,CL 表示扇区号,DH 表示磁头号,DL 表示驱动器号。
输入:ES:BX 指向数据缓冲区。
输出:各寄存器的值表示操作结果。
获取磁盘参数:

功能号 8:获取磁盘参数,如磁头数、磁道数、每磁道扇区数等。
寄存器 AH = 08h,DL 表示驱动器号。
输入:DL 表示驱动器号。
输出:各寄存器的值表示操作结果和磁盘参数。

获取驱动器参数:

功能号 8:获取驱动器参数,如驱动器类型、几何参数等。
寄存器 AH = 08h,DL 表示驱动器号。
输入:DL 表示驱动器号。
输出:各寄存器的值表示操作结果和驱动器参数。
磁盘检测:

功能号 15h:检测磁盘驱动器是否存在。
寄存器 AH = 15h,DL 表示驱动器号。
输入:DL 表示驱动器号。
输出:AL 的值为 00h 表示驱动器不存在,否则表示存在。
扩展功能:

一些 BIOS 提供了扩展的 INT13H 功能,可以用于更高级的磁盘操作,如 LBA(逻辑块寻址)模式、大容量硬盘支持等。
使用这些扩展功能时,需要设置相应的寄存器和数据结构,具体操作方法可以参考 BIOS 文档或硬件厂商提供的技术资料。

磁盘参数设置:

功能号 0:设置磁盘参数,如磁头数、磁道数、每磁道扇区数等。
寄存器 AH = 0h,DL 表示驱动器号。
输入:各寄存器的值表示要设置的磁盘参数。
输出:各寄存器的值表示操作结果。
驱动器重置:

功能号 0:复位指定的驱动器。
寄存器 AH = 0h,DL 表示驱动器号。
输入:DL 表示驱动器号。
输出:AL 的值表示操作结果。
扇区验证:

功能号 4:验证指定扇区的数据是否正确。
寄存器 AH = 4h,AL 表示要验证的扇区数量,CH 表示磁道号,CL 表示扇区号,DH 表示磁头号,DL 表示驱动器号。
输入:无输入缓冲区。
输出:各寄存器的值表示操作结果。
扇区格式化:

功能号 5:对指定扇区进行格式化操作。
寄存器 AH = 5h,AL 表示要格式化的扇区数量,CH 表示磁道号,CL 表示扇区号,DH 表示磁头号,DL 表示驱动器号。
输入:无输入缓冲区。
输出:各寄存器的值表示操作结果。

扇区读取:

功能号 2:从指定驱动器的指定磁头、磁道和扇区读取数据到内存缓冲区。
寄存器 AH = 2h,AL 表示要读取的扇区数量,CH 表示磁道号,CL 表示扇区号,DH 表示磁头号,DL 表示驱动器号,ES:BX 表示数据的内存缓冲区地址。
输入:各寄存器的值表示读取的参数。
输出:各寄存器的值表示操作结果。
扇区写入:

功能号 3:将数据从内存缓冲区写入到指定驱动器的指定磁头、磁道和扇区。
寄存器 AH = 3h,AL 表示要写入的扇区数量,CH 表示磁道号,CL 表示扇区号,DH 表示磁头号,DL 表示驱动器号,ES:BX 表示数据的内存缓冲区地址。
输入:各寄存器的值表示写入的参数。
输出:各寄存器的值表示操作结果。
获取驱动器状态:

功能号 1:获取指定驱动器的状态信息。
寄存器 AH = 1h,DL 表示驱动器号。
输入:DL 表示驱动器号。
输出:各寄存器的值表示操作结果和驱动器状态信息。