我写了一个小程序来测试 GCC 的选项。
int main()
{
int a=0;
__asm__("movl %0,%%ecx\n"
"jmp jmpsection\n"
"inc %%ecx\n"
"jmpsection: movl $1,%%eax\n"
"movl $0,%%ebx\n"
"int $0x80\n"::"a"(a):"ecx","ebx");
}
为了保持 var a 等于 1,请跳过 inc 指令。我想强制 GCC 使用 IP 相对寻址方法生成 jmp 指令。我搜索了 GCC 手册以找到解决方案,但我失败了。感谢重播。