是否有支持带偏移的寄存器间接寻址的CALL指令?

cdo*_*nts 2 x86 assembly

如果我有一个模块的基地址EAX并且想要调用位于的函数EAX+C,是否有以下代码的单行替代?

ADD EAX, C
CALL EAX
Run Code Online (Sandbox Code Playgroud)

它似乎CALL [EAX+C]给出了未定义的行为.

Mar*_*oom 7

没有.

call eax注册间接的,它调用地址在EAX中的例程.
call [eax+C]Memory indirect,它调用其地址在MEM [EAX + C]中的例程.

这就是他们有不同行为的原因.x86不支持
该表单call eax+C,即具有Offset的Register Indirect.
没有单一的指令可以做到.