ASM直接呼叫指令

时间:2014-11-29 07:37:38

标签: visual-studio assembly x86

  1. 如何在不取消引用指针的情况下使用调用操作码生成直接调用?

  2. 由于调用指令可能意味着许多操作码中的任何一个,例如xE8,xFF和x9A,如何在使用调用指令时告诉Visual Studio我想生成哪一个?

1 个答案:

答案 0 :(得分:0)

汇编程序将根据您使用的表达式确定要生成的操作码。

如果你写call foo,它将是一个近乎相对的电话E8。如果您写call [foo]call [eax]call eax,它将接近间接调用FF(操作码扩展名2)。如果你写call foo:bar(或者如果汇编程序知道你正在调用远程程序),它将是一个直接远程调用9A。如果你写call far [foo],它将是间接远程调用,也是FF(但操作码扩展3)。

PS:不确定VS的远程调用语法,请参阅文档以获取详细信息。但是,你通常不会使用远程呼叫。