中断调用

若要调用中断,可以使用X86汇编语言的 INT指令。 例如,如下的x86汇编语言指令可以使用BIOS的0x10中断向屏幕打印一个字符。

mov ah, 0x0e
mov al, '!'
int 0x10  


BIOS 中断向量表

中断描述
INT 00hCPU: 除零错,或商不合法时触发
INT 01hCPU: 单步陷阱,TF标记为打开状态时,每条指令执行后触发
INT 02hCPU: 非可屏蔽中断, 如 开机自我测试 时发生内存错误触发。
INT 03hCPU: 第一个未定义的中断向量, 约定俗成仅用于调试程序
INT 04hCPU: 算数溢出。通常由INTO指令在置溢出位时触发。
INT 05h在按下Shift-Print Screen或BOUND指令检测到范围异常时触发。
INT 06hCPU: 非法指令。
INT 07hCPU: 没有数学协处理器时尝试执行浮点指令触发。
INT 08hIRQ0: 可编程中断控制器每 55 毫秒触发一次,即每秒 18.2 次。
INT 09hIRQ1: 每次键盘按下、按住、释放。
INT 0AhIRQ2:
INT 0BhIRQ3: COM2/COM4。
INT 0ChIRQ4: COM1/COM3。
INT 0DhIRQ5: 硬盘控制器(PC/XT 下)或 LPT2。
INT 0EhIRQ6: 需要时由软碟控制器呼叫。
INT 0FhIRQ7: LPT1。
INT 10h
显示服务 - 由BIOS或操作系统设定以供软件调用。
AH=00h设定显示模式
AH=01h设定游标形态
AH=02h设定游标位置
AH=03h获取游标位置与形态
AH=04h获取光笔位置
AH=05h设定显示页
AH=06h清除或卷轴画面(上)
AH=07h清除或卷轴画面(下)
AH=08h读取游标处字符与属性
AH=09h更改游标处字符与属性
AH=0Ah更改游标处字符
AH=0Bh设定边界颜色
AH=0Eh在TTY模式下写字符
AH=0Fh取得目前显示模式
AH=13h写字符串
INT 11h返回设备列表。
INT 12h获取常规内存容量。
INT 13h低阶磁盘服务。
AH=00h复位磁盘驱动器。
AH=01h检查磁盘驱动器状态。
AH=02h读扇区。
AH=03h写扇区。
AH=04h校验扇区。
AH=05h格式化磁道。
AH=08h取得驱动器参数。
AH=09h初始化硬盘驱动器参数。
AH=0Ch寻道。
AH=0Dh复位硬盘控制器。
AH=15h取得驱动器类型。
AH=16h取得软驱中盘片的状态。
INT 14h串口通信例程。
AH=00h初始化串口。
AH=01h写出字符。
AH=02h读入字符。
AH=03h状态。
INT 15h其它(系统支持例程)。
AH=4FH键盘拦截。
AH=83H事件等待。
AH=84H读游戏杆。
AH=85HSysRq 键。
AH=86H等待。
AH=87H块移动。
AH=88H获取扩展内存容量。
AH=C0H获取系统参数。
AH=C1H获取扩展 BIOS 数据区段。
AH=C2H指针设备功能。
AH=E8h, AL=01h (AX = E801h)获取扩展内存容量(自从 1944 年引入的新功能),可获取到 64MB 以上的内存容量。
AH=E8h, AL=20h (AX = E820h)查询系统地址映射。该功能取代了 AX=E801h 和 AH=88h。
INT 16h键盘通信例程。
AH=00h读字符。
AH=01h读输入状态。
AH=02h读 Shift 键(修改键)状态。
AH=10h读字符(增强版)。
AH=11h读输入状态(增强版)。
AH=12h读 Shift 键(修改键)状态(增强版)。
INT 17h打印服务。
AH=00h打印字符。
AH=01h初始化打印机。
AH=02h检查打印机状态。
INT 18h执行磁带上的 BASIC 程序:“真正的”IBM 兼容机在 ROM 里内置 BASIC 程序,当引导失败时由 BIOS 调用此例程解释执行。(例:打印“Boot disk error. Replace disk and press any key to continue...”这类提示信息)
INT 19h加电自检之后载入操作系统。
INT 1Ah实时钟服务。
AH=00h读取实时钟。
AH=01h设置实时钟。
AH=02h读取实时钟时间。
AH=03h设置实时钟时间。
AH=04h读取实时钟日期。
AH=05h设置实时钟日期。
AH=06h设置实时钟闹铃。
AH=07h重置实时钟闹铃。
INT 1BhCtrl+Break,由 IRQ 9 自动调用。
INT 1Ch预留,由 IRQ 8 自动调用。
INT 1Dh不可调用:指向视频参数表(包含视频模式的数据)的指针。
INT 1Eh不可调用:指向软盘模式表(包含关于软驱的大量信息)的指针。
INT 1Fh不可调用:指向视频图形字符表(包含从 80h 到 FFh 的 ASCII 字符的数据)的信息。
INT 41h地址指针:硬盘参数表(第一硬盘)。
INT 46h地址指针:硬盘参数表(第二硬盘)。
INT 4Ah实时钟在闹铃时调用。
INT 70hIRQ8: 由实时钟调用。
INT 74hIRQ12: 由鼠标调用
INT 75hIRQ13: 由数学协处理器调用。
INT 76hIRQ14: 由第一个 IDE 控制器所呼叫
INT 77hIRQ15: 由第二个 IDE 控制器所呼叫


11-08 10:47