【发布时间】:2015-03-08 16:30:47
【问题描述】:
我是 x86 汇编编程的新手,在我的一项作业中遇到了这个问题。 我的目标是为某些中断(比如 INT 32 或 INT 35,两者都是用户定义的中断)编写中断描述符表条目。我查看了 Intel x86 Developers Manual 并找到了 IDT 条目的结构。出于这个问题的目的,让我们考虑我的程序具有以下结构:
myCodeGeneratingInterrutpt35:
...
...
...
someOtherCode:
..
..
..
myInterruptHandlerForInterrupt35:
.
.
.
IRET
someOtherInterruptHandlers:
... ..
此代码位于从地址开始的代码段中,例如 0xa1000(存储在 CS 中)。让 IDTR 指向某个地址,比如 0xe5000。我有 8 字节的条目对应于从 [IDTR] 开始的每个 IDT 条目。因此,根据我的计算,INT 35 的条目位于 0xe5118。 (一种)。你们能给我一个方法来找出以“myInterruptHandlerForInterrupt35: ...”开头的代码地址吗? (b)。另外,如何从 CS 中找到代码“myInterruptHandlerForInterrupt35”的偏移量?
【问题讨论】: