x86 64汇编

时间:2010-11-15 07:16:33

标签: assembly x86-64

我正在编写自修改代码。

movq      $TARGET_CIA, 0x550(%rax)

此符号TARGET_CIA最初未定义,在运行时我尝试将64位立即值复制到此位置。但是在编译时,该指令将此未定义立即值的值取为32位,当我尝试复制64位时,我看到有符号扩展的32位。 有没有办法将这个未定义的符号视为64位值?

2 个答案:

答案 0 :(得分:12)

你需要

movabs $0x1234567890abcdef, 0x550(%rax)

64位立即数需要movabs指令。

答案 1 :(得分:0)

我只是运行另一条指令来获取第二个32位。可能不是最佳方式,因为我有一段时间没有做任何ASM,但它会起作用。 :)

祝你好运 卢克彼得森