Logical Orr ARM

时间:2017-05-27 04:43:39

标签: arm logic

我是手臂编程的新手,我正在尝试理解以下代码的作用:

.macro set_bit reg_addr bit

   ldr r4, =\reg_addr
   ldr r5, [r4]
   orr r5, #(1 << \bit)
   str r5, [r4]
.endm

特别是我对orr r5,#(1<< \bit)部分感到困惑,我理解orr代表逻辑orr ,但我不确定在给定的上下文中这意味着什么。我认为#(1<<\bit)看到1是否大于给定位,因此将返回 true false 语句但我不确定{{1} 1}}命令会做。

1 个答案:

答案 0 :(得分:0)

你是对的,ORR指令用于执行逻辑OR运算。该指示在本问题的上下文中以下列格式使用 - ORR {注册} {常数}

现在,这里的常数是(1 <&lt;&lt; \ bit),这基本上意味着左移1由\位量。这里的位是0-31之间的数字,它决定了需要设置哪个位。 ARM指令集允许常量也具有这样的移位操作。