news 2026/9/9 9:55:29

ARM 汇编指令:ORRS

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ARM 汇编指令:ORRS

ARM 汇编指令:ORRS

在 ARM 架构中,ORRS是一条按位逻辑或(OR)指令,并且会根据操作结果更新条件标志位


1.基本含义

  • ORR= 逻辑或(Bitwise OR)
  • S= 后缀,表示该指令执行后要更新APSR(应用程序状态寄存器)中的条件标志位(主要是 N、Z、C、V 中的相关位)。

指令格式通常为:
ORRS Rd, Rn, Operand2
作用是将RnOperand2按位进行逻辑或运算,结果存入Rd,并更新标志位。


2.运算规则

  • 按位或:Rd = Rn | Operand2
  • Operand2可以是立即数、寄存器或经过移位/旋转的寄存器。

例如:

ORRS R1, R2, R3 ; R1 = R2 | R3,并更新标志位 ORRS R0, R0, #0x8 ; 将 R0 的 bit3 置 1,并更新标志位

3.影响的条件标志位

执行ORRS后会更新:

  • N(Negative):结果的最高位(bit31)为 1 则置 1。
  • Z(Zero):结果为 0 则置 1。
  • C(Carry):如果Operand2是立即数或移位寄存器,则标志可能由移位器的进位输出更新(与ORR不带 S 时相同,但 ORRS 会写入 APSR)。
  • V(Overflow):不受影响(保持原值)。

4.典型用途

  1. 设置特定位检查结果是否为 0 或负数

    ORRS R0, R1, R2 ; 做 OR,同时根据结果设置 Z 和 N BEQ zero_result ; 如果结果为 0 则跳转
  2. 测试两个值的位组合,同时丢弃结果只留标志(常用TST指令更直接,TST本质上就是ANDS但不存结果)。
    ORRS可以类似地用于测试,不过更常见的是用ANDSTST做位测试。

  3. 在需要组合位且同时更新标志以便后续条件执行时使用。


5.与普通 ORR 的区别

  • ORR:只做运算,不更新标志位。
  • ORRS:运算并更新 N、Z、C 标志。

6.示例

MOV R2, #0 ORRS R1, R2, #0 ; R1 = 0,Z = 1, N = 0 BNE somewhere ; 不会跳转,因为 Z=1 表示相等(结果为0)
MOV R2, #0x80000000 ORRS R1, R2, #0 ; R1 = 0x80000000,最高位为1 ; 结果不为0 → Z=0 ; 最高位为1 → N=1

7.在 Thumb/Thumb-2 中的可用性

在 ARMv6T2 及更高版本中,大多数形式的ORRS在 Thumb-2 中可用(包括窄指令和宽指令)。在早期的 Thumb 中(ARMv4T/ARMv5),ORRS有受限的寄存器范围(如ORRS Rd, Rd, Rm,Rd 和 Rm 必须是低寄存器 R0–R7)。


8.注意

  • 如果你只需要置位而不关心标志,用ORR即可。
  • 如果需要测试两个寄存器是否同时为 0 的位模式,更常用TST Rn, Operand2(即ANDS但不存结果)。
  • ORRS在编写需要条件执行的代码时很有用,例如在循环或状态判断中。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/7 20:11:28

EmotiVoice语音合成在无障碍服务中的社会价值

EmotiVoice语音合成在无障碍服务中的社会价值 在数字技术飞速发展的今天,信息获取的便捷性却并未均等地惠及所有人。对于视障人士、读写障碍者或语言表达受限的群体而言,屏幕上的文字依然是一道难以逾越的墙。而当AI语音从冷冰冰的“播报员”进化为能传递…

作者头像 李华
网站建设 2026/9/9 1:02:32

EmotiVoice在语音翻译软件中的情感保留能力

EmotiVoice在语音翻译软件中的情感保留能力 在一场跨国远程医疗会诊中,医生用急促而关切的语调说:“你的情况需要立刻处理!” 如果这句话被翻译成英语后变成平缓、毫无波澜的“Your condition requires immediate attention.”——即便语义准…

作者头像 李华
网站建设 2026/9/9 11:11:09

EmotiVoice开源项目CI/CD流程解析与优化

EmotiVoice开源项目CI/CD流程解析与优化 在AI语音技术飞速发展的今天,用户早已不再满足于“能说话”的机器,而是期待真正“有情感、像真人”的语音交互体验。传统TTS系统受限于固定语调和机械朗读风格,在虚拟助手、游戏NPC、有声内容创作等场…

作者头像 李华
网站建设 2026/9/8 20:14:27

EmotiVoice语音合成在在线课程中的沉浸式体验

EmotiVoice语音合成在在线课程中的沉浸式体验 在今天的在线教育场景中,学习者早已不再满足于“能听清”的课程讲解。他们期待的是更自然、更具感染力的互动体验——就像一位真实教师站在面前,用富有情绪变化的语调引导思考、强调重点、鼓励探索。然而&am…

作者头像 李华
网站建设 2026/9/8 19:15:12

EmotiVoice语音合成在影视后期制作中的潜力

EmotiVoice语音合成在影视后期制作中的潜力 在一部电影的后期剪辑现场,导演突然发现关键情节中的一句台词语气不够强烈,需要从“平静陈述”改为“愤怒质问”。传统流程下,这意味着要重新联系演员、安排录音棚档期、进行多轮试音——整个过程可…

作者头像 李华
网站建设 2026/9/9 6:41:24

Kotaemon异步任务队列设计提升系统响应速度

Kotaemon异步任务队列设计提升系统响应速度 在现代企业级智能对话系统的开发中,一个常见的痛点是:用户刚提出问题,系统却“卡住”几秒甚至更久才开始回应。这种延迟不仅影响体验,还可能引发高并发场景下的服务雪崩。尤其是在检索增…

作者头像 李华