我正在编写一个自修改代码.
movq $TARGET_CIA, 0x550(%rax)
Run Code Online (Sandbox Code Playgroud)
此符号TARGET_CIA最初未定义,在运行时我尝试将64位立即值复制到此位置.但是在编译时,该指令将此未定义立即值的值取为32位,当我尝试复制64位时,我看到有符号扩展的32位.有没有办法让这个未定义的符号被视为64位值?
Gun*_*iez 12
你需要
movabs $0x1234567890abcdef, 0x550(%rax)
Run Code Online (Sandbox Code Playgroud)
64位立即需要movabs指令.