x86_64 64位立即移动

时间:2010-11-15 08:51:46

标签: x86-64

我正在写下面的说明。

movq      $TARGET_CIA, %rcx

TARGET_CIA是未定义的变量,因此被视为零。该指令的反汇编看起来像

 0:   48 c7 c1 00 00 00 00    mov    $0x0,%rcx

在运行时,我希望通过将64位值复制到$TARGET_CIA符号的偏移量,将此TARGET_CIA替换为64位值。请让我知道如何做到这一点。

1 个答案:

答案 0 :(得分:1)

通过“mov [qword 0],rax”,你可以实现这一目标。请注意,AL,AX,EAX,RAX是唯一允许作为具有64位绝对寻址的指令的源或目标的寄存器,因此您将无法在此处使用RCX(将值复制到RAX)

如果您的汇编程序无法强制完全寻址,请使用:

db 0x48, 0xA3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00