我正在写下面的说明。
movq $TARGET_CIA, %rcx
TARGET_CIA
是未定义的变量,因此被视为零。该指令的反汇编看起来像
0: 48 c7 c1 00 00 00 00 mov $0x0,%rcx
在运行时,我希望通过将64位值复制到$TARGET_CIA
符号的偏移量,将此TARGET_CIA
替换为64位值。请让我知道如何做到这一点。
答案 0 :(得分:1)
通过“mov [qword 0],rax”,你可以实现这一目标。请注意,AL,AX,EAX,RAX是唯一允许作为具有64位绝对寻址的指令的源或目标的寄存器,因此您将无法在此处使用RCX(将值复制到RAX)
如果您的汇编程序无法强制完全寻址,请使用:
db 0x48, 0xA3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00