ARM Assembly: 第8课 branching

server/2024/10/4 15:38:05/

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 r0mov r1, #5         ; Move the immediate value 5 into register r1cmp r0, r1         ; Compare the values in r0 and r1 (sets the APSR flags)bgt cond1          ; Branch to label 'cond1' if r0 is greater than r1b   cond2          ; Unconditional branch to label 'cond2'cond1:mov r2, #1         ; If r0 > r1, move 1 into r2cond2:mov r3, #2         ; Always move 2 into r3

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

参考链接【2】

参考链接:

【1】Documentation – Arm Developer

【2】Documentation – Arm Developer


http://www.ppmy.cn/server/127005.html

相关文章

linux桌面软件(wps)内嵌到其他窗口

程序测试环境是:slackware系统,属于linux系统,有桌面(Xface Session)。系统镜像是:slackware64-15.0-install-dvd.iso。qt、c代码实现。 程序功能:将已经打开的wps(word、pdf等都可…

vue3 + ts + cesium:绘制、更新圆 ellipse

本文主要实现基础的绘制圆形,并且可以通过拖动圆心更新圆的位置,拖动圆上的边缘点改变圆的半径。 实现效果: (1)单击鼠标左键开始绘制,确定圆的圆心,移动鼠标,改变圆的半径&#xff…

力扣(leetcode)每日一题 1845 座位预约管理系统| treeSet和priority Queue的区别|线段树

之前发过一篇,感觉还有深挖的地方,于是又补充一些信息 这题目虽然是middle难度题目,要解答出来是只要easy的时间,但是深挖可以有hard的难度 题解1 可以帮助复习线段树的使用,题解2 可以复习一下java基础知识 题解1 线…

仿RabbitMQ实现消息队列服务端(一)

文章目录 交换机数据管理队列数据管理绑定信息(交换机-队列)管理队列消息管理虚拟机管理交换机路由管理队列消费者/订阅者管理 整体框架:工具模块及项目整体模块框架 交换机数据管理 交换机数据管理就是描述了交换机应该有哪些数据 定义交换机数据类 1、交换机的名…

66 使用注意力机制的seq2seq_by《李沐:动手学深度学习v2》pytorch版

系列文章目录 文章目录 系列文章目录动机加入注意力总结代码定义注意力解码器训练小结练习 我们来真的看一下实际应用中,key,value,query是什么东西,但是取决于应用场景不同,这三个东西会产生变化。先将放在seq2seq这个…

Llama 3.2 使用指南:工作原理及示例

Meta AI 宣布发布 Llama 3.2,该版本引入了系列中的首批多模态模型。Llama 3.2 专注于两个关键领域: 启用视觉的大型语言模型(LLM):11B 和 90B 参数的多模态模型现在可以处理并理解文本和图像。为边缘和移动设备设计的轻量级 LLM:1B 和 3B 参数模型旨在轻量化和高效,允许…

基于php摄影门户网站

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…

SLF4J报错log4j又报错

项目场景: 搭建一个spirngboot项目,启动运行时,SLF4J报错 解决后 ~ log4j又报错了。 问题描述 首先是SLF4J报错了,解决完SL4J报错问题后,再次启动项目,log4j又报错了 。。。 报错信息: SLF4J…