BIOS中斷呼叫

您所在的位置:网站首页 bios编程器 BIOS中斷呼叫

BIOS中斷呼叫

2023-04-14 08:05| 来源: 网络整理| 查看: 265

BIOS中断调用(英語:BIOS interrupt calls)是一組功能,为DOS程式與一些软件提供使用IBM PC兼容机上BIOS的功能。許多現代作業系統(如Windows、Linux)的啟動程式會使用BIOS中斷呼叫載入內核,然後由內核將處理器從16位元真實模式轉換到32位元保護模式(或64位元長模式)[1]。

目录 1 中断调用 2 BIOS 中斷向量表 3 参见 4 参考资料 中断调用[编辑]

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

mov ah, 0x0e mov al, '!' int 0x10 BIOS 中斷向量表[编辑] 中斷 描述 INT 00h CPU:除零错,或商不合法时触发 INT 01h CPU:单步陷阱,TF标记为打开状态时,每条指令执行后触发 INT 02h CPU:非可屏蔽中断(英语:Non-maskable interrupt),如開機自我測試时发生内存错误。 INT 03h CPU:第一个未定义的中断向量,约定俗成仅用于调试程序 INT 04h CPU:算数溢出。通常由INTO指令在置溢出位时触发。 INT 05h 在按下⇧ Shift+Prt Sc或BOUND指令检测到范围异常时触发。 INT 06h CPU:非法指令。 INT 07h CPU:没有数学协处理器时尝试执行浮点指令触发。 INT 08h IRQ0:可编程中断控制器每 55 毫秒触发一次,即每秒 18.2 次。 INT 09h IRQ1:每次键盘按下、按住、释放。 INT 0Ah IRQ2: INT 0Bh IRQ3:COM2/COM4。 INT 0Ch IRQ4:COM1/COM3。 INT 0Dh IRQ5:硬盘控制器(PC/XT 下)或 LPT2。 INT 0Eh IRQ6:需要時由軟碟控制器呼叫。 INT 0Fh IRQ7: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=85H SysRq 键。 AH=86H 等待。 AH=87H 块移动。 AH=88H 获取扩展内存容量。 AH=C0H 获取系统参数。 AH=C1H 获取扩展 BIOS 数据区段。 AH=C2H 指针设备功能。 AH=E8h, AL=01h (AX = E801h) 获取扩展内存容量(自从 1994 年引入的新功能),可获取到 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 1Bh Ctrl+Break,由 IRQ 9 自动调用。 INT 1Ch 预留,由 IRQ 8 自动调用。 INT 1Dh 不可调用:指向视频参数表(包含视频模式的数据)的指针。 INT 1Eh 不可调用:指向软盘模式表(包含关于软驱的大量信息)的指针。 INT 1Fh 不可调用:指向视频图形字符表(包含从 80h 到 FFh 的 ASCII 字符的数据)的信息。 INT 41h 地址指针:硬盘参数表(第一硬盘)。 INT 46h 地址指针:硬盘参数表(第二硬盘)。 INT 4Ah 实时钟在闹铃时调用。 INT 70h IRQ8:由实时钟调用。 INT 74h IRQ12:由鼠标调用 INT 75h IRQ13:由数学协处理器调用。 INT 76h IRQ14:由第一個 IDE 控制器所呼叫 INT 77h IRQ15:由第二個 IDE 控制器所呼叫 参见[编辑] DOS中断调用(英语:DOS interrupt call) 中断描述符表(英语:Interrupt descriptor table) 输入/输出基地址(英语:Input/Output Base Address) 拉尔夫·布朗的中断列表(英语:Ralf Brown's Interrupt List) 参考资料[编辑] The x86 Interrupt List(页面存档备份,存于互联网档案馆) (a.k.a. RBIL, Ralf Brown's Interrupt List) Embedded BIOS User's Manual PhoenixBIOS 4.0 User's Manual HTML version of Ralf Brown Interrupt List(页面存档备份,存于互联网档案馆) IBM Personal System/2 and Personal Computer BIOS Interface Technical Reference, IBM, 1988, ISBN 999857739X System BIOS for IBM PCs, Compatibles, and EISA Computers, Phoenix Technologies(英语:Phoenix Technologies), 1991, ISBN 0201577607 Programmer's Guide to the AMIBIOS, American Megatrends, 1993, ISBN 0070015619 The Programmer's PC Sourcebook by Thom Hogan, Microsoft Press, 1991 ISBN 155615321X ^ From bootloader to kernel · Linux Inside. 0xax.gitbooks.io. [2020-09-10]. (原始内容存档于2020-08-06). 


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3