我正在编写自修改代码。
movq $TARGET_CIA, 0x550(%rax)
此符号TARGET_CIA最初未定义,在运行时我尝试将64位立即值复制到此位置。但是在编译时,该指令将此未定义立即值的值取为32位,当我尝试复制64位时,我看到有符号扩展的32位。 有没有办法将这个未定义的符号视为64位值?
答案 0 :(得分:12)
你需要
movabs $0x1234567890abcdef, 0x550(%rax)
64位立即数需要movabs指令。
答案 1 :(得分:0)
我只是运行另一条指令来获取第二个32位。可能不是最佳方式,因为我有一段时间没有做任何ASM,但它会起作用。 :)
祝你好运 卢克彼得森