x86 jmp注册

时间:2012-04-22 20:54:37

标签: assembly x86

所以我在%eax中有一个地址我想jmp但代码不能编译,有没有办法解决这个问题?

movl 0xdeadbeef, %eax

jmp %eax ; <--- compile error: type mismatch for 'jmp'

3 个答案:

答案 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