Bochs源码分析 - 14:bochs关于实地址模式下IVT表的管理

本文详细分析了Bochs模拟器中实地址模式下Interrupt Vector Table (IVT) 的管理,包括IDTR寄存器、IVT表的功能、sidt和lidt指令的实现。通过一个简单的程序解读,展示了如何重定位IVT,并探讨了CPU对段式内存管理的寄存器和相关指令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

        这篇文章对应着邓志老师的《x86/x64体系探索及编程》的第八章,讲述的是实模式,实模式一个是寻址方式不同,另外一个是IVT(Interrupt Vector Table)。我们这篇文章着重分析intel指令的有关实现机制。

四个内存管理寄存器

        在Intel卷三 2.4 节中,介绍了四个内存管理的寄存器,这里的内存管理指的是段式内存,分段的内存管理,而不是页式内存管理。同时intel提供了一些指令来管理这些寄存器中的数据,感兴趣可以查阅手册了解更多详情。

IVT(Interrupt Vector Table)

        简单来讲一下IVT表,所谓IVT表。在实模式下,IDTR寄存器中32位地址是直接指向IVT表地址,IVT表简单来说是向量表,当发生中断时,其会根据中断号来去相应表中查询得到处理函数的地址,然后跳转到该地址中来进行处理。

        而在实模式下,IVT表的地址就是存储在IDTR中,如下图。值得自己注意的是,IVT表的地址存储在寄存器,寄存器,寄存器中!!并不存储在内存的某处,寄存器是归CPU所管理的

EX8-1程序解读<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值