【发布时间】:2012-01-15 04:35:29
【问题描述】:
谁能给我一些关于 x86 汇编中的间接函数调用的信息,即像这样的指令
call *Reg
所以函数标签的地址存放在一个寄存器中。不知何故,我无法通过谷歌找到有关它的信息。
此外,如果我在运行具有此类指令的 x86 汇编程序时遇到跟踪/断点异常,这意味着什么?
【问题讨论】:
谁能给我一些关于 x86 汇编中的间接函数调用的信息,即像这样的指令
call *Reg
所以函数标签的地址存放在一个寄存器中。不知何故,我无法通过谷歌找到有关它的信息。
此外,如果我在运行具有此类指令的 x86 汇编程序时遇到跟踪/断点异常,这意味着什么?
【问题讨论】:
英特尔和 AMD 发布了关于 x86 的非常好的文档。 这是英特尔指令集参考的链接,(当然)有一个关于 CALL 的部分。 http://www.intel.com/design/intarch/manuals/243191.HTM
OP Code: FF /2
Instruction: CALL r/m32
Description: Call near, absolute indirect, address given in r/m32
使用 NASM 语法
lbl_start:
MOV EAX, lbl_function1
CALL EAX
RETN
lbl_function1:
MOV EAX, 1
RET 0
如果您遇到异常,这几乎意味着任何事情。以下是一些常见问题...
【讨论】: