2

有什么作用:

ORRS R1、R3做什么?

是否只是 R1 |= R3,可能设置了 N- 或 Z 标志?

这可能是显而易见的,但我还没有找到任何描述没有操作数 2 的 ORR 助记符的文档。

非常感谢您的反馈。

-b。

4

3 回答 3

3

在 ARM 汇编中,目标寄存器 (Rd) 与源寄存器 (Rn) 相同的指令可以省略 Rd。所以这些是相同的,并且会汇编成完全相同的指令。

orrs r1, r1, r3
orrs r1, r3

add r1, r1, #5
add r1, #5

等等。

于 2011-07-12T01:25:06.017 回答
3

这是拇指指令。在 16 位 Thumb 操作码中,您只能容纳两个操作数,您不会得到额外的operand2.

如您所料,确实如此R1 |= R3。该S标志的存在表明该指令是 If-Then 块的一部分(Thumb 具有而不是正确的 ARM 条件执行);ORRORRS生成相同的操作码,只是上下文不同。

于 2011-07-11T20:19:20.750 回答
1

它可能在armv7m trm 或者它自己的trm 中,但是他们有一个,我不记得统一的术语,汇编语言,所以

添加 r0,r3

将为手臂和拇指组装,拇指与手臂一样,上面等同于添加 r0,r0,r3。对于拇指你没有得到三个寄存器选项,但功能是隐含的 r0=r0+r3。

于 2011-07-11T20:38:46.480 回答