Assembly x86 64汇编

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

我正在写一个自我修改的代码

movq      $TARGET_CIA, 0x550(%rax)
此符号TARGET_CIA最初未定义,在运行时,我尝试将64位立即数复制到此位置。但在编译时,这条指令将这个未定义的立即数的值作为32位,当我尝试复制64位时,我会在它的位置看到有符号扩展的32位。
有没有办法将这个未定义的符号作为64位值处理?

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

祝你好运 卢克·彼得森

你需要

movabs $0x1234567890abcdef, 0x550(%rax)

movabs指令是64位即时指令所必需的。

Lol,刚刚注意到这是一个necro答案;-)不管怎样,也许它在某个时间对某人有用;-)可能相同:可能重复的