我想做一个即时跳转(以提高性能),而不是调用一个新函数或制作一个跳转表。我不知道为什么这段代码可以在我的编译器上运行,但它不能正确跳转:
__asm mov eax, __cmd
__asm jmp eax //Crash!
__cmd :
//Some code
我尝试了第二种方法,它也可以编译但不起作用:
int address = 10;
__asm jmp (__cmd + address) //Crash!
__cmd :
var += value;return;
var -= value;return;
var *= value;return;
var /= value;return;
var %= value;return;
但是,它只适用于常量:
__asm jmp (__cmd + 10) //works
为什么我的程序在执行间接跳转时会崩溃?有没有办法解决这个问题?