如果我有一个模块的基地址EAX并且想要调用位于的函数EAX+C,是否有以下代码的单行替代?
ADD EAX, C
CALL EAX
Run Code Online (Sandbox Code Playgroud)
它似乎CALL [EAX+C]给出了未定义的行为.
没有.
call eax注册是间接的,它调用地址在EAX中的例程.
call [eax+C]是Memory indirect,它调用其地址在MEM [EAX + C]中的例程.
这就是他们有不同行为的原因.x86不支持
该表单call eax+C,即具有Offset的Register Indirect.
没有单一的指令可以做到.