BIOS 中断向量表

article/2025/9/13 21:45:19

在bochs虚拟器调试中输入info ivt可以查看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)获取扩展内存容量(自从 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 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 控制器所调用

http://chatgpt.dhexx.cn/article/MRB2niMQ.shtml

相关文章

【裸机开发】认识中断向量表(设置中断向量偏移的原因)

之前的LED驱动不存在中断,也就不包含中断的初始化。如果程序包含了中断,我们应还需要初始化哪些内容?要解决这个问题,我们需要先了解一个中断系统包含了哪些内容。 ① 中断向量表:描述中断对应的中断服务函数&#xf…

linux内核学习10.1:Linux内核ARM7架构异常中断向量表

参考:https://www.cnblogs.com/douzi2/p/5112743.html 当异常中断发生时,系统执行完当前指令后,将跳转到相应的异常中断处理程序处执行。在异常中断处理程序执行完成后,程序返回到发生中断的指令的下一条指令处执行。 说明 Ker…

汇编_修改中断向量表_自定义中断

文章目录 中断向量表介绍索引方式:修改中断向量表 自定义中断思路实现效果:实现代码执行步骤 中断向量表 介绍 在dos系统中,总共设计了256种中断,每个中断都有一个中断号,通过中断号来映射中断程序的地址。为了实现映…

9.2 中断向量表的结构

计算机组成 9 中断和异常 9.2 中断向量表的结构 我现在已经知道了,在运算的时候 一旦遇到了异常情况,就翻到第一页的第一行开始写的这些操作的指示,开始往下执行。开始往下执行,这就能解决问题了。但是问题在于这段操作&#xff0…

中断向量表的重印射

基于HAL库 以STM30F303RBT6为例: 打开system_stm32f3xx.c文件,修改其中的中断向量表位置,修改flash offset即可。 下载的位置也,也需要修改 做远程升级时,需要在单片机启动前运行一个boo程序,在boot程序中…

嵌入式杂谈之中断向量表

虽说接触了好久的单片机或者说嵌入式开发,不过对于有些概念还是比较模糊,因此此系列将会从一些零碎的小知识点出发,慢慢的遍历整张嵌入式开发的地图。 这次先来看一下中断向量表。 至于为什么会提到中断向量表,主要是因为我自己…

中断向量表--

中断向量表如何确定中断的入口地址? 每个中断对应一个中断号,比如一个中断事件的中断号为0x00,那么它对应的中断程序的入口地址就是0x0000-0x0003,另一个中断事件的中断号为0x01,那么它对应的中断程序的入口地址就是0…

一文了解Cortex-M中断向量表对齐原则

关注星标公众号,不错过精彩内容 来源 | 痞子衡嵌入式 一、Cortex-M中断向量表对齐原则 中断向量表就是一个集中保存系统全部中断处理函数(xxxIRQHandler)地址的常量数组(函数地址要占 4 个字节,因此数组中每个元素大小…

STM32中断向量表复制到SRAM中运行

1、生成Map文件 复制中断向量表前需要知道中断向量表的大小,可以通过编译生成的Map文件查看。 2、查看中断向量表大小 中断向量表的大小是固定的,与程序代码量无关,打开Map文件,直接搜索0x08000000,我使用的 MCU 是…

通过GDK8观察ARM框架下的中断向量表

一、中断向量表介绍 中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。 以上是中断在百度百科中些较为浅显的解释,中断实际…

【STM32】中断向量表

我是通过这个进行学习的,我觉得讲的很好,这里我稍加修改,作为自己的学习笔记: 嵌入式杂谈之中断向量表 前言 STM32根据boot引脚的配置方式有3种启动方式,但是无论哪一种方式,对于STM32来说都是从0x0000 0000启动 ST…

Cortex M4 中断向量表

前言 重新学习Cortex M4的中断向量表内容。中断向量表是Cortex M4自带的功能,厂家可以根据需要自行定义,所以需要学习该内容,直接看Cortex M4内核相关即可。我这查看的是《Cortex M3与M4权威指南.pdf》。 一、中断向量 中断向量是什么&…

中断向量表

关于中断向量的几点注释 1. 系统引导时,中断向量表放在内存何处? 系统刚引导时,内存0x00000到0x0003FF共1KB的空间用于存放中断向量表。每个中断向量占用4个字节,共可存储256个中断向量。 2. 系统引导时,处在实模式下,只可寻址1MB,为什么要用4个字节来寻址中断呢处理程…

TF_REPEATED_DATA ignoring data with redundant timestamp for frame left_wheel at time

使用urdf和xacro编写机器人仿真模型的时候,同时开启gazebo和rviz的时候遇到的问题 ubuntu20.04 ros noetic 开启gazebo并启动rviz时,rviz终端会一直产生一个警告:TF_REPEATED_DATA ignoring data with redundant timestamp for frame left…

ProtoBuf(Google Protocol Buffers)—— repeated 修饰字段注意点(packed修饰)

ProtoBuf—— (repeated 修饰 ) repeated1、定义2、使用事项 参考 repeated 1、定义 repeated类型相当于STL的vector,可以用来存放N个相同类型的内容。proto2 中还有 repeated 可选,在proto3 中则已经被摒弃并且默认格式为pack。…

Responder

在hack the box 最后一个sql注入题时,有这个工具的使用,之前没有接触过,看write up上是需要利用两个IP地址,似乎与内网渗透有关,马上查找相关资料,看到底是个什么东东。 什么是Responder 在攻防领域&…

Reverse

IDA中文不显示解决 参考链接 VScode中文乱码解决参考链接 (1 ~ 10攻防世界)(11~20为Buu,近乎为shift F12查找字符串) 1. xxxorrr 题目链接 题目WP 心得:可能会有其它隐藏函数对所需结果进行操作 2. SignIn RSA算法介绍 c是密文,m是明文…

java中@Repeatable的理解

Repeatable是jdk8中新增的注解,使用如Spring中的ComponentScan注解。在没有Repeatable注解的的注解中,在同一个地方使用相同的注解会报错,有了此元注解注解的注解,就可以在同一个地方使用相同的注解。其官方文档如下 The annotati…

TS:解决docker无法启动,报:start request repeated too quickly for docker.service错误-2021.12.08(已解决)

目录 文章目录 目录1、报错现象2、解决办法3、总结关于我最后 1、报错现象 首先,我当前的环境是:docker 20.10.11,vmworkstation虚机 很奇怪,自己的docker用着用着就出现问题了,查看服务发现起不来,重启docker服务也…

【已解决】TF_REPEATED_DATA ignoring data with redundant timestamp for frame

目录 1 问题背景2 问题探索3 问题解决4 告别Bug 1 问题背景 环境:Ubuntu20.04 ROS-noetic 现象:打开Rviz与Gazebo加载机器人模型时,终端不停刷新警告TF_REPEATED_DATA ignoring data with redundant timestamp for frame,且在未施…