【发布时间】:2014-11-29 07:37:38
【问题描述】:
如何在不取消引用指针的情况下使用调用操作码生成直接调用?
-
由于 call 指令可以表示 xE8、xFF 和 x9A 等多种操作码中的任何一个,当我使用 call 指令时,如何告诉 Visual Studio 我要生成哪一个?
【问题讨论】:
-
基于 E8 的
call操作码仅适用于具有局部位移的目标。很有可能(我目前没有要测试的 MSVC),那么,被调用的函数必须具有本地链接,例如声明为static,至少。 -
谢谢,克里斯。我将问题编辑为更清楚。
-
跳转/分支/调用指令的选择通常在链接器中完成。启用链接时优化可能使链接器可以使用直接调用。
标签: visual-studio assembly x86