所以我在%eax
中有一个地址我想jmp但代码不能编译,有没有办法解决这个问题?
movl 0xdeadbeef, %eax
jmp %eax ; <--- compile error: type mismatch for 'jmp'
答案 0 :(得分:21)
由于没有人能够为您提供正确答案,因此这是:
jmp *%eax
答案 1 :(得分:5)
如果没有其他工作,您可以随时使用以下技巧:
push eax
ret
答案 2 :(得分:5)
// target address in eax
jmp *%eax
// target pointer address in eax
jmp *(%eax)
对于x86_64,寄存器为:%rax