7

所以我有一个地址,%eax我想跳转到,但代码无法编译,有没有办法解决这个问题?

movl 0xdeadbeef, %eax

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

3 回答 3

23

由于没有人能够为您提供正确的答案,所以这里是:

jmp   *%eax
于 2012-04-22T22:32:56.230 回答
5

如果没有其他方法,您可以随时使用以下技巧:

push eax
ret
于 2012-04-22T21:00:54.353 回答
5
// target address in eax
jmp   *%eax

// target pointer address in eax
jmp   *(%eax)

对于 x86_64,寄存器是:%rax

于 2012-04-22T21:08:22.720 回答