gpt4 book ai didi

arm - 反转寄存器 Thumb-2 中的位

转载 作者:行者123 更新时间:2023-12-01 16:38:36 25 4
gpt4 key购买 nike

所以我的问题是一个我认为很简单的问题,我有一个算法,但我似乎无法使用 thumb-2 指令使其工作。

安利,我需要反转 r0 的位,我认为最简单的方法是将数字逻辑右移到临时寄存器中,然后将其左移到结果寄存器中。但是,LSL、LSR 似乎不允许您将丢失的移位位存储到最高有效位或最低有效位(同时还移动该寄存器的位)。是否有我未理解的指令的某些部分。

这是我的 ARM 引用资料: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204j/Cjacbgca.html

最佳答案

如果使用 S 后缀(“设置标志”),被移出的位可以复制到 C 位(进位标志)。 RRX指令使用C设置结果的第31位。所以你可能会做这样的事情:

  ; 32 iterations
MOV R2, #32
; init result
MOV R1, #0
loop
; copy R0[31] into C and shift R0 to left
LSLS R0, R0, #1
; shift R1 to right and copy C into R1[31]
RRX R1, R1
; decrement loop counter
SUBS R2, #1
BNE loop
; copy result back to R0
MOV R0, R1

请注意,这是一种非常慢的反转位的方法。如果 RBIT 可用,你应该使用它,否则检查一些 bit twiddling tricks .

关于arm - 反转寄存器 Thumb-2 中的位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19246544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com