Advertisement

Bochs源码分析 - 17:研究Bochs对整数指令的处理方式

阅读量:

前言

在《x86/x64编程体系探索及编程》一书的第207页中,作者提供了一个关于中断服务例程的应用实例,接下来我们将对该段代码进行深入分析,并探讨bochs是如何实现相关功能的,其中特别关注int指令的具体执行机制。

代码分析

其首先需要配置调用set_user_interrupt_handler以实现中断向量的调用,具体实现内容如下:

复制代码
     mov esi, SYSTEM_SERVICE_VECTOR // 0x40

    
     mov edi, system_service        // lib
    
     call set_user_interrupt_handler
    
    
    
    

set_user_interrupt_handler 地址处仅包含一条 jmp 指令,用于跳转至 __set_user_interrupt_handler 函数。在该函数内部,首先通过 sidt 指令获取 IDT 表的地址,并将其存入 [___idt__pointer] 所指向的内存区域。随后,以 esi

全部评论 (0)

还没有任何评论哟~