如何在ARM汇编中移位字节

时间:2018-11-11 16:58:59

标签: assembly arm

假设我将以下十六进制值存储在寄存器中;

r1 =#0x1

r2 =#0x2

r3 =#0x3

r4 =#0xA

我想将#0x123A存储在r0中。

是否有一种类似于使用LSL / LSR移位位的字节值的方法,以便我可以使用掩码对每个寄存器(r1-r4)进行AND操作,然后将字节移至r0中的正确位置?

1 个答案:

答案 0 :(得分:2)

ARM移位是其他操作中第二个操作数的一部分。所以你会做类似的事情:

OR r0, r4, r3, LSL #4
OR r0, r0, r2, LSL #8
OR r0, r0, r1, LSL #12

尽管如果源寄存器的其他位不为零,这不会做“掩码”部分。