当前位置: 首页 > article >正文

ARM Assembly: 第8课 branching

branch causes a branch to a target address.  The "B" mnemonic signifies an unconditional branch.

 单个的B表示进入一个无条件的分支,而含条件的分支通常可以基于APSR 条件flag进行指令的执行。比如,基于condition flag z是否为1, 我们可以进行BEQ结果的判断。

如下面代码

.global _start
_start:
    mov r0, #4         ; Move the immediate value 4 into register r0
    mov r1, #5         ; Move the immediate value 5 into register r1
    
    cmp r0, r1         ; Compare the values in r0 and r1 (sets the APSR flags)
    bgt cond1          ; Branch to label 'cond1' if r0 is greater than r1
    b   cond2          ; Unconditional branch to label 'cond2'

cond1:
    mov r2, #1         ; If r0 > r1, move 1 into r2
    
cond2:
    mov r3, #2         ; Always move 2 into r3

下面是各种条件分支的触发机制和与condition flag的关系。【2】

参考链接【2】

参考链接:

【1】Documentation – Arm Developer

【2】Documentation – Arm Developer


http://www.kler.cn/news/327182.html

相关文章:

  • Web自动化中常用XPath定位方式
  • D23【 python 接口自动化学习】- python 基础之判断与循环
  • Docker入门指南:快速学习Docker的基本操作
  • 网络编程(13)——单例模式
  • BCJR算法——卷积码的最大后验译码
  • Ubuntu 开机自启动 .py / .sh 脚本,可通过脚本启动 roslaunch/roscore等
  • 联邦学习(三只决策和大数据分析)(学习笔记)
  • 【网络安全】TCP和UDP
  • 防止电脑电池老化,禁止usb或者ac接口调试时充电
  • 计算神经学笔记01
  • 后端-对表格数据进行添加、删除和修改
  • 单片机的原理及应用
  • 2024年华为OD机试真题-找终点-Java-OD统一考试(E卷)
  • AIGC学习笔记—minimind详解+训练+推理
  • elasticsearch单个node节点写入数据
  • 中间层架构设计:构建稳健的企业级服务
  • [Day 81] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
  • 表现层架构设计:打造高效、可维护的前端系统
  • JavaScript网页设计案例深度解析:从理论到实践
  • frps+nginx实现访问ip的记录
  • 测试用例_边界值介绍(需求自动化生成用例方法论)
  • 预训练技巧:在训练末尾对领域数据上采样
  • Linux shell脚本set -e的作用详解
  • Linux 性能优化之CPU 多级缓存
  • ip的生命周期是多久
  • el-table添加fixed后错位问题
  • vscode【实用插件】Project Manager 项目管理
  • fastAPI教程:jinja2模板
  • 代码随想录:孤岛类问题
  • python UNIT 3 选择与循环(2)