任何人都可以给我一些有关x86汇编中间接函数调用的信息,例如
之类的指令call *Reg
因此,函数标签的地址存储在寄存器中。不知何故,我无法通过谷歌找到有关它的信息。
此外,如果在运行具有此类指令的x86汇编程序时遇到Trace / breakpoint异常,这意味着什么?
答案 0 :(得分:8)
英特尔和AMD发布了关于x86的非常好的文档。 这是一个指向Intels指令集引用的链接,当然它有一个关于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
如果你得到一个例外,那几乎可能意味着什么。这是一些常见的问题......