12.7 跳转与存储器访问指令

news2024/11/22 11:21:39

目录

跳转指令

@方式一

@方式二

@方式三

@程序返回

ARM指令的条件码

@比较指令

内存访问指令(一)

load(LD加载)/srore(ST存储)指令:访问(读写)内存

@写内存

@读内存

ARM指令的寻址方式

@立即寻址

@寄存器寻址

@寄存器移位寻址

@寄存器间接寻址

@基址加变址寻址

@基址加变址寻址的索引方式

@前索引

@后索引

@自动索引


跳转指令

实现程序的的跳转,本质就是修改了PC寄存器

@方式一

直接去修改pc寄存器的值(不建议使用,需要我们自己去计算)

MOV PC, #0x18

@方式二

B FUNC

不带返回的跳转指令,本质就是将pc寄存器的值修改成跳转标号下第一条指令的地址

@方式三

带返回的跳转指令,本质就是将pc寄存器的值修改成跳转标号下第一条指令的地址

BL FUNC

@程序返回

MOV PC, LR

ARM指令的条件码

不是指令,指令的后缀,通过添加后缀能够决定指令在什么条件下执行

@比较指令

CMP R1,R2

@CMP的本质就是一条减法指令(SUNS),只是没有将运算的结果存入寄存器

没有目标寄存器,结果放在CPSR中的n、z、c、v中

@== z=1

@!= z=0

@< c=0

@<= c=0或z=1

@> c=1且z=0

@>= c=1

条件码助记后缀可以放在B后,

如BEQ FUNC @if(EQ){B FUNC} 本质:if(z==1){B FUNC}

如BNE FUNC @if(EQ){B FUNC} 本质:if(z==0){B FUNC}

ARM指令集中大多数指令都可以带条件码后缀

内存访问指令(一)

load(LD加载)/srore(ST存储)指令:访问(读写)内存

@写内存

MOV R1, #0xFF000000

MOV R2, #0x40000000

STR R1,[R2]

将R1寄存器中的数据存储到R2的内存空间

@读内存

LDR R3,[R2]

将内存中R2指向的内存空间中的数据读取到R3寄存器

MOV R1, #0xFFFFFFFF

MOV R2, #0x40000000

STRB R1,[R2]写入最后一个字节

STRH R1,[R2]写入最后两个字节

LDR指令同样支持以上两个指令

ARM指令的寻址方式

寻址方式就是CPU去寻找一个操作数的方式

@立即寻址

MOV R1 , #1

ADD R1, R2, #1

@寄存器寻址

ADD R1, R2, R3

@寄存器移位寻址

MOV R1, R2, LSL #1

@寄存器间接寻址

STR R1, [R2]

@基址加变址寻址

MOV R1, #0xFFFFFFFF

MOV R2, #40000000

MOV R3, #4

STR R1, [R2,R3]

将R1寄存器中的数据写入到R1+R3指向的内存空间

STR R1, [R2, R3, LSL #1]

将R1寄存器中的数据写入到R2+(R3<<1)指向的内存空间

@基址加变址寻址的索引方式

@前索引

MOV R1, #0xFFFFFFFF

MOV R2, #40000000

STR R1, [R2,#8]

将R1寄存器中的数据写入到R2+8指向的内存空间

@后索引

MOV R1, #0xFFFFFFFF

MOV R2, #40000000

STR R1, [R2],#8

将R1寄存器中的数据写入到R2指向的内存空间,然后R2自增8

@自动索引

MOV R1, #0xFFFFFFFF

MOV R2, #40000000

STR R1, [R2,#8]!

将R1寄存器中的数据写入到R2+8指向的内存空间,然后R2自增8

以上寻址方式和索引方式同样适用于LDR

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

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

相关文章

leetcode:寻找数组的中心下标

寻找数组的中心下标 easy 给你一个整数数组 nums &#xff0c;请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标&#xff0c;其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端&#xff0c;那么左侧数之和视为 0 &#xff0c;因为在下标…

git bash设置字体大小

背景 git bash默认字体太小了&#xff0c;每次读信息都要伸头盯着屏幕&#xff0c;很不自在&#xff0c;不符合我的风格&#xff0c;so let’s do it&#xff01; 修改前的git bash&#xff1a; 正确的打开方式 1、在任意目录下&#xff0c;右键选择“Git Bash Here”&…

这5款能带来意想不到效果的小工具,你用过几款?

​ 有时候一些小工具&#xff0c;能给你带来一些意想不到的效果&#xff0c;我们来看看下面这5款工具&#xff0c;你又用过其中几款呢&#xff1f; 数据标注平台——Labelbox ​ Labelbox是一个数据标注平台&#xff0c;可以帮助你创建和管理高质量的训练数据&#xff0c;用于…

【新版系统架构】系统架构设计师教程全篇知识点提炼

第一章-绪论 架构的定义&#xff1a; 1、架构体现在组件中的一个系统的基本组织、彼此的关系和环境的关系及指导它的设计和发展的原则 2、系统是组织起来完成某一特定功能或一组功能的组件集 3、环境或者上下文决定了对这个系统的开发、运作、政策以及会对系统造成其他影响的…

Map集合以及它的实现类们

Map集合 Map集合的概念理解 在现实生活中&#xff0c;我们经常会碰见一对一标识的例子&#xff1a;如身份证号与个人、IP地址与主机名等。这些一一对应的关系就是映射。在Java之中也能为我们的对象添加一个“一”的对应关系—Map<K,V>集合&#xff0c;位于java.util.Ma…

113.(cesium篇)cesium卷帘分屏效果

地图之家总目录(订阅之前必须详细了解该博客) 地图之家:cesium+leaflet+echart+地图数据+地图工具等相关内容的介绍 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: cesium卷帘分屏效果 下面献上完整代码,代码重要位置会做相应解释…

实战演练Python数据分析[pandas]

文章目录 [TOC](文章目录) 前言一、MoviesLens数据集二、美国1880-2010年的婴儿名字三、美国农业部视频数据库四、2012年联邦选举委员会数据库总结 前言 本篇文章出自于《利用Python进行数据分析》示例数据 请结合提供的示例数据&#xff0c;分析代码的功能&#xff0c;并进行…

微服务优雅上下线的实践方法

导语 本文介绍了微服务优雅上下线的实践方法及原理&#xff0c;包括适用于 Spring 应用的优雅上下线逻辑和服务预热&#xff0c;以及使用 Docker 实现无损下线的 Demo。同时&#xff0c;本文还总结了优雅上下线的价值和挑战。 作者简介 颜松柏 腾讯云微服务架构师 拥有超过…

Win10下安装TensorRT

Win10下安装TensorRT 前言相关介绍Win10下安装TensorRT查看cuda版本下载tensorrt8.xx版本&#xff0c;适用于Windows的cuda11.x的版本解压下载好的压缩包使用pip下载wheel文件遇到新问题解决方法 测试TensorRT是否安装成功 参考 前言 由于本人水平有限&#xff0c;难免出现错漏…

WAS 9.0 ND 命令行安装-基于LINUX 8

WAS 9.0 安装文件准备如下&#xff1a; gtk.x86_64_1.8.9004.20190423_2015.zip ----IM安装源文件 sdk.repo.8035.java8.linux.zip ----JAVA安装源文件 was.repo.90501.nd.zip ----WAS安装源文件 …

深度学习(27)——YOLO系列(6)

深度学习&#xff08;27&#xff09;——YOLO系列&#xff08;6&#xff09; 嗨&#xff0c;好久不见&#xff0c;昨天结束了yolov7的debug过程&#xff0c;真的在尽力句句理解&#xff0c;我想这应该是我更新的yolo系列的最后一篇&#xff0c;但是仅限于yolo&#xff0c;dete…

Day43: 123.买卖股票的最佳时机III,188.买卖股票的最佳时机IV

目录 123.买卖股票的最佳时机III 思路 188.买卖股票的最佳时机IV 思路 123.买卖股票的最佳时机III 123. 买卖股票的最佳时机 III - 力扣&#xff08;LeetCode&#xff09; 思路 1. 确定dp数组及其下标含义 一天一共就有五个状态&#xff0c; 没有操作 &#xff08…

白皮书精彩章节:从冬奥会看我们如何做到与“双碳”目标偕行

以下案例来自于《数字孪生世界白皮书&#xff08;2023版&#xff09;》 领取方式&#xff1a;公众号「EasyV数字孪生」后台回复「白皮书」即可领取&#xff01; 一、“双碳”提出背景 1、正式提出 在2020年9月22日75届联合国大会上&#xff0c;中国首次在国际公开场合提出…

Vue计算属性与监听器

文章目录 计算属性配置项 computedHTML 结构Vue 实例数据方法计算属性绑定数据和方法完整代码 监听器配置项 watch简单类型写法深度监听写法 计算属性配置项 computed 使用 Vue 实现一个商品价格计算器&#xff0c;设置一个初始单价&#xff0c;初始数量为 1&#xff0c;用户可…

开源外卖点餐系统源码:提升餐饮行业数字化转型

随着数字化时代的到来&#xff0c;餐饮行业正积极寻求数字化转型的方式来适应市场需求。开源外卖点餐系统源码成为推动餐饮行业数字化转型的有力工具。本文将介绍一个开源外卖点餐系统的源码&#xff0c;并解析其中的关键代码&#xff0c;展示如何利用开源源码来提升餐饮行业的…

漏洞攻击 --- TCP -- 半开攻击、RST攻击

TCP半开攻击&#xff08;半连接攻击&#xff09; --- syn攻击 &#xff08;1&#xff09;定义&#xff1a; sys 攻击数据是DOS攻击的一种&#xff0c;利用TCP协议缺陷&#xff0c;发送大量的半连接请求&#xff0c;耗费CPU和内存资源&#xff0c;发生在TCP三次握手中。 A向B…

2023年为何最卷的IT行业仍是很多人的首选?

最近这段时间&#xff0c;“IT行业崩盘了”、“前端已死&#xff0c;后端已亡”这些言论在网络中甚嚣尘上&#xff0c;引起了激烈的讨论。 对此&#xff0c;小编只想说&#xff1a;别再看了&#xff01;这不妥妥的传播焦虑吗&#xff1f;他们怎么只告诉你IT行业完了&#xff…

前端预览pdf文件

在前端开发中&#xff0c;很多时候我们需要进行pdf文件的预览操作&#xff0c;下面给出几种常见的预览pdf文件的方法&#xff1a; 一&#xff1a;直接浏览器打开 如果项目对pdf的预览功能要求不高&#xff0c;只是要求能够看的话&#xff0c;可以直接在浏览器上打开pdf文件的…

浅谈 java 虚拟机 JVM

前言 小亭子正在努力的学习编程&#xff0c;接下来将开启JavaEE的学习~~ 分享的文章都是学习的笔记和感悟&#xff0c;如有不妥之处希望大佬们批评指正~~ 同时如果本文对你有帮助的话&#xff0c;烦请点赞关注支持一波, 感激不尽~~ 目录 前言 JVM中的内存划分 JVM的类加载机制…

今天我们要向您介绍的是一款来自厂家的劲道半干面 - 味尚拉面

尊敬的顾客您好&#xff0c;感谢您选择我们的电商平台。今天我们要向您介绍的是一款来自厂家的劲道半干面 - 味尚拉面。 味尚拉面是一款经典的面食品牌&#xff0c;以选用高品质面粉和精选优质食材为特点&#xff0c;采用独特工艺制作而成。其中&#xff0c;味尚拉面的半干面更…