没有operand2的ARM v7 ORRS助记符

时间:2011-07-11 19:47:11

标签: arm assembly mnemonics

做什么:

ORRS R1,R3 吗?

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

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

非常感谢您的反馈。

-b。

3 个答案:

答案 0 :(得分:3)

这是Thumb指令。在16位Thumb操作码中,您只能使用两个操作数,而不能获得额外的operand2

正如您猜测的那样,R1 |= R3S标志的存在表明该指令是If-Then块的一部分(Thumb具有什么,而不是正确的ARM条件执行); ORRORRS生成相同的操作码,仅因上下文而异。

答案 1 :(得分:3)

在ARM汇编中,目标寄存器(Rd)与源寄存器(Rn)相同的指令可以省略Rd。所以它们是相同的,并将组装成完全相同的指令。

orrs r1, r1, r3
orrs r1, r3

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

等等。

答案 2 :(得分:1)

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

添加r0,r3

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