跳转指令 —— B、BL

news2025/1/12 3:50:09

跳转指令可以跳转到标号的下一条指令,本质就是修改了PC寄存器的值。(标号并非指令,只是用来定位,相当于记录了当前位置的下一条指令的地址)

@ 这里的MAIN就是一个标号
MAIN:            
    MOV R1, #1

@ 这里的FUNC就是一个标号
FUNC:            
    MOV R6, #2

目录

1、不带返回的跳转指令 B

2、带返回的跳转指令 BL


1、不带返回的跳转指令 B

所谓不带返回,指的是,跳转之前不会保存跳转位置的下一条指令地址,跳转过去就回不来了。

指令格式:B  <标号/具体地址>

MAIN:
	MOV R1, #1
	MOV R2, #2
	B FUNC            @ 通过标号跳转
	MOV R3, #3
	
FUNC:
	MOV R4, #4
	MOV R5, #5

从LR寄存器的值来看,说明指令 B 在跳转之前不会保存下一条指令的地址。

2、带返回的跳转指令 BL

BL指令就恰恰相反,在跳转之前,BL指令会自动将下一条指令的地址保存到LR寄存器

指令格式:BL  <标号/具体地址>

MAIN:
	MOV R1, #1
	MOV R2, #2
	BL FUNC            @ 通过标号跳转
	MOV R3, #3
	
FUNC:
	MOV R4, #4
	MOV R5, #5
    MOV PC, LR        @ 把LR寄存器的值赋给PC寄存器

注意:跳转过去以后,不会自动跳回来,需要手动将LR寄存器的值赋给PC寄存器才能跳转回来。 

从调试结果来看,BL在跳转之前确实保存了下一条指令的地址。

对应C语言,就类似于

void func(){
    int d = 4;
    int e = 5;
}

int main(){
    int a = 1;
    int b = 2;
    func();
    int c = 3;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/94601.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实验3 路由器基本配置及路由配置

实验3 路由器基本配置及路由配置一、实验目的二、实验要求三、实验步骤&#xff0c;数据记录及处理四&#xff0e;实验总结一、实验目的 1、路由器几种模式。 2、基本的配置命令。 3、路由器各接口的配置方法。 4、会查看检测接口状态。 二、实验要求 写出自己学习使用了哪些…

Redis框架(十五):大众点评项目 共同关注方案实现?双指针筛选DB数据:Redis取交集

大众点评项目 好友关注 共同关注需求&#xff1a;好友关注 共同关注业务逻辑展示点击关注功能实现判断当前用户是否关注了此博主共同好友列表查询业务逻辑实现双指针筛选DB数据Redis取交集总结SpringCloud章节复习已经过去&#xff0c;新的章节Redis开始了&#xff0c;这个章节…

字节一面:select......for update会锁表还是锁行?

select查询语句是不会加锁的&#xff0c;但是select .......for update除了有查询的作用外&#xff0c;还会加锁呢&#xff0c;而且它是悲观锁。 那么它加的是行锁还是表锁&#xff0c;这就要看是不是用了索引/主键。 没用索引/主键的话就是表锁&#xff0c;否则就是是行锁。…

sklearn基础篇(十)-- 非负矩阵分解与t-SNE

1 非负矩阵分解(NFM) NMF(Non-negative matrix factorization)&#xff0c;即对于任意给定的一个非负矩阵V\pmb{V}VVV&#xff0c;其能够寻找到一个非负矩阵W\pmb{W}WWW和一个非负矩阵H\pmb{H}HHH&#xff0c;满足条件VW∗H\pmb{VW*H}VW∗HVW∗HVW∗H,从而将一个非负的矩阵分解…

物联网架构实例—解决Linux(Ubuntu)服务器最大TCP连接数限制

1.前言&#xff1a; 在对物联网网关进行压测的时候&#xff0c;发现在腾讯云部署网关程序&#xff0c;设备接入数量只能达到4000多个长连接&#xff0c;之后就再也无法接入终端了。 之前在阿里云部署的时候明明可以到达2万左右&#xff0c;而且腾讯云的这个服务器比阿里云的硬…

蓝桥杯嵌入式综合实验真题-联网电压测量系统设计与实现

目录 实验要求&#xff1a; 实验思路&#xff1a; 核心代码&#xff1a; &#xff08;1&#xff09;变量声明 &#xff08;2&#xff09;函数声明 &#xff08;3&#xff09;main主函数 &#xff08;4&#xff09;按键&#xff08;长按/短按&#xff09; &#xff08;5&…

K8s——Service、代理模式演示(二)

Service 演示 SVC 创建svc-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata:name: myapp-deploynamespace: default spec:replicas: 3selector:matchLabels:app: myapprelease: stabeltemplate:metadata:labels:app: myapprelease: stabelenv: testspec: c…

学习UI设计有哪些figma插件

自2016年推出以来&#xff0c;Figma已发展成为市场领先者UI设计工具之一。 因为它不仅简单易用&#xff0c;功能优秀&#xff0c;而且基于云服务&#xff0c;可以实时编辑&#xff0c;节省大量手动下载或复制文件的时间。不仅如此&#xff0c;Figma还提供合作功能&#xff0c;…

一文读懂PFMEA(过程失效模式及后果分析)

PFMEA是过程失效模式及后果分析(Process Failure Mode andEffects Analysis)的英文简称&#xff0c;是由负责制造/装配的工程师/小组主要采用的一种分析技术&#xff0c;用以最大限度地保证各种潜在的失效模式及其相关的起因/机理已得到充分的考虑和论述。 名词解释&#xff1a…

springboot介绍

笔记来源于 动力节点springboot Javaconfig xml方式 在创建模块时&#xff0c;idea2022新版选择internal即可&#xff1a; pom.xml文件 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xs…

圆顶光源特点及应用——塑料包装袋、PCB板检测

照明系统是机器视觉系统较为关键的部分之一&#xff0c;机器视觉光源直接影响到图像的质量&#xff0c;进而影响到系统的性能。其重要性无论如何强调都是不过分的。好的打光设计能够使我们得到一幅好的图象&#xff0c;从而改善整个整个系统的分辨率&#xff0c;简化软件的运算…

Java JNA 调用DLL(动态连接库) 回调函数

首先准备好动态链接库dll 参考连接 visual studio 2017 创建dll文件并使用https://blog.csdn.net/miss_na/article/details/113524280 Visual Studio 2017 动态链接库(.dll)生成与使用的简明教程https://blog.csdn.net/Hide_on_Stream/article/details/109172054 jni之jni与…

【记录】U盘安装Ubuntu20.04系统

之前电脑安装的Centos7系统&#xff0c;但是在启动过程中遇到了文件异常&#xff0c;就开不了机了&#xff0c;另外貌似Centos7已经停止维护了&#xff0c;想了下&#xff0c;果断不要数据了&#xff0c;直接重装系统吧&#xff0c;这次选用的是Ubuntu 20.04【ps: 没有选择最新…

「含元量」激增,这届世界杯的看点不止足球

文|智能相对论 作者|青月 半决赛结束&#xff0c;卡塔尔世界杯已经正式进入倒计时阶段。 这届世界杯诞生了不少精彩瞬间&#xff0c;在小组赛中&#xff0c;日本、韩国、沙特接连打败西班牙、葡萄牙、阿根廷等传统强队&#xff0c;摩洛哥也代表非洲球队首次挺进四强&#xf…

v8垃圾回收

文章目录内存的生命周期v8垃圾回收算法新生代Scavenge图例老生代Mark-SweepMark-Compact图例v8垃圾回收的弊端v8垃圾回收优化内存的生命周期 内存的生命周期可以分为三个阶段&#xff1a; 内存分配&#xff1a;按需分配内存内存食用&#xff1a;读写已经分配的内存内存释放&a…

Linux 管理联网 配置网络的四种方法 配置临时连接( ip 命令)

配置网络 # 网络接口是指网络中的计算机或网络设备与其他设备实现通讯的进出口。这里,主要是 指计算机的网络接口即 网卡设备 # 网络接口 -- 网卡 的命名 &#xff1a; 从RHEL7开始引入了一种新的“一致网络设备命名”的方式为网络接口命名,该…

【Java笔记】 深入理解序列化和反序列化

深入理解序列化和反序列化 文章目录深入理解序列化和反序列化1.是什么2.为什么3.怎么做3.1 实现Serializable接口3.2 实现Externalizable接口3.3 注意知识点3.4 serialVersionUID的作用4 扩展1.是什么 序列化&#xff1a;就是讲对象转化成字节序列的过程。 反序列化&#xff…

C++开发,这些GUI库一定不要错过

程序员宝藏库&#xff1a;https://gitee.com/sharetech_lee/CS-Books-Store 如果问Python这类集成度非常高的编程语言GUI开发用什么库&#xff0c;可以列举出很多不错的第三方库。 但是&#xff0c;如果这个问题放在C这种基础的编程语言上&#xff0c;很多同学估计一时间都无从…

用Gurobi+python求解设施选址问题(facility location)

参考&#xff1a;Gurobi 官方资源 设施选址&#xff08;Facility Location&#xff09; 1.背景介绍 设施选址问题在许多工业领域如物流&#xff0c;通信等都有应用&#xff0c;在本案例中展示如何解决设施选址问题&#xff0c;决策出仓库的数量和地点&#xff0c;为一些超市…

Crash Consistency on File Systems: 文件系统一致性保证 (1) Journaling File System

文件系统是操作系统中管理用户数据的重要模块。其中一项重要的任务就是确保用户数据的在系统突然崩溃之后&#xff0c;系统能够恢复出完整、一致的用户数据。本文将会分析两种流行的文件系统&#xff0c;Journaling File System 和 Log-structured File System是如何确保数据的…