x86 64 AT& T,将寄存器的一部分移动到另一个寄存器中

时间:2015-04-25 11:20:41

标签: indexing x86 cpu-registers mov

我想将一个字节从寄存器rdx移到寄存器rbx,如下所示:

mov %rdx , (%rbx,%r15,1)

,其中 rdx包含0x33 ,r15是索引,rbx在开始时包含0。

我尝试过多种方式使用此方法,总是以SIGSEGV错误结束。 最后,我将创建一个rbx寄存器,其中包含一个下一个rdx值的数组

1 个答案:

答案 0 :(得分:0)

您可以一次移动一个字节,如下所示:

; Calculate first dl
...
mov  %dl,%bl
; Calculate next dl
...
shlq $8,%rbx
mov  %dl,%bl
; Calculate next dl
...
shlq $8,%rbx
mov  %dl,%bl

等。这假定您需要msb中的第一个字节和lsb中的最后一个字节。收获顺序有点复杂,但并不多。