news 2026/6/20 18:30:55

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/6/18 18:15:58

Springboot商洛研究院科研管理系统5mv56(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表项目功能:新闻公告,科研管理员,科研人员,项目类型,科研项目,论文信息,出版物信息,论文类型,科研人员消息,科研管理员消息开题报告内容一、研究背景与意义(一)研究背景随着科技的飞速发展和社会的不断进步,科研工作…

作者头像 李华
网站建设 2026/6/19 11:03:20

Springboot商业保险选购系统0u1s4(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表项目功能:保险类别,公司名称,客户,业务员,经理,保险信息,购买保险,承保保险开题报告内容一、选题背景与意义(一)选题背景随着社会经济的快速发展和居民风险意识的提升,商业保险已成为现代风险管理体系的核心组成部…

作者头像 李华
网站建设 2026/6/18 23:18:15

Kotaemon物联网设备远程控制接口实现

Kotaemon物联网设备远程控制接口实现 在智能制造车间的深夜值班室里,一位运维工程师正对着监控屏幕皱眉——3号温控器突然报警,而他并不熟悉这台设备的操作流程。如果按照传统方式,他需要翻找厚厚的操作手册、核对API文档、再手动调用命令行工…

作者头像 李华
网站建设 2026/6/19 18:58:40

Windows-Execution-Policies

导航 (返回顶部) 1. about_Execution_Policies 1.1 POWERSHELL 执行策略1.2 执行策略作用域 2. 使用 PowerShell 管理执行策略 2.1 查看当前的有效执行策略2.2 更改执行策略2.3 删除执行策略2.4 为某个会话设置一个不同的执行策略2.5 使用组策略管理执行策略 3. 未签名的脚本 3…

作者头像 李华
网站建设 2026/6/20 18:19:40

EmotiVoice语音合成在语言学习APP中的互动设计

EmotiVoice语音合成在语言学习APP中的互动设计技术背景与核心价值 在今天的语言学习应用中,用户早已不再满足于“能听清”的语音输出。他们期待的是有温度、有情绪、像真人一样的对话体验——尤其是在练习口语、听力或情景对话时,语音的情感表达和语调变…

作者头像 李华
网站建设 2026/6/13 3:47:19

为什么EmotiVoice适合用于有声读物生成?真实体验报告

为什么EmotiVoice适合用于有声读物生成?真实体验报告 在有声书越来越成为数字阅读主流的今天,一个现实问题摆在内容创作者面前:如何以合理成本,持续产出情感丰富、角色鲜明、听感自然的高质量音频?传统依赖专业配音演员…

作者头像 李华