如何在ARM程序集中按给定位数移动数字?



如果我被告知将 1 向左移动 x 位,其中 x 存储在 r1 中。指令是 lsls r1,#1 还是我存储值 1(比如在 r2 中(,然后使用 lsls r2,r1 移动它。我想确认其中任何一个是否正确 - 第二个选项似乎更有意义。

取决于你是使用 ARM 还是 thumb。您正在使用拇指,因此请使用@Jester的拇指答案。对于 32 位 ARM,您将使用

mov    r1, #1
lsl  r0, r1, r0

要将寄存器向左移动 1,您可以使用:

MOV R1,R1,LSL #1

最新更新