所以我有一个地址,%eax我想jmp但代码不会编译,有没有办法解决这个问题?
movl 0xdeadbeef, %eax
jmp %eax ; <--- compile error: type mismatch for 'jmp'
Run Code Online (Sandbox Code Playgroud)
如果没有其他工作,你可以随时使用以下技巧:
push eax
ret
Run Code Online (Sandbox Code Playgroud)
// target address in eax
jmp *%eax
// target pointer address in eax
jmp *(%eax)
Run Code Online (Sandbox Code Playgroud)
对于x86_64,寄存器是: %rax