汇编中如何通过函数指针调用函数?(无extern单行实现)
用RCX中的函数指针调用函数的单行汇编实现
- 直接写
call rcx这一行代码就搞定了,完全不需要用extern关键字。 - 你之前试的代码为啥没用?
mov rax, QWORD[rcx]是把rcx指向的内存里的数值读到rax里,根本不是调用函数;后面的ret只是让程序从当前函数返回,完全没触发目标函数的执行。
- 说白了,x86-64架构里,
call指令支持直接用寄存器当目标地址。执行call rcx时,CPU会先把当前下一条指令的地址压栈(方便之后返回),然后直接跳转到rcx里存的那个函数地址开始执行,正好符合你的需求。
内容的提问来源于stack exchange,提问作者Petie Deveer
相关产品推荐
相关产品推荐

