12.7 跳转与存储器访问指令

目录

跳转指令

@方式一

@方式二

@方式三

@程序返回

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.hqwc.cn/news/20030.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux—实操篇:实用指令

目录 1、指定运行级别 1.1基本介绍 1.2、示例 1.3、CentOS7 后运行级别说明 2、找回root密码 3、帮助指令 3.1、man指令 3.2、help指令 4、文件目录指令 4.1、pwd 指令 4.2、ls 指令 4.3、cd 指令 4.4、mkdir 指令 4.5、rmdir 指令 4.6、touch 指令 4.7、cp 指…

AWS 中文入门开发教学 48- S3 - 静态网站之王, 快速建立网站之首选

知识点 使用 S3 快速搭建静态网页网站使用 Route 53 服务解析网站域名实战演习 设计域名 Name: blog.deeplearnaws.ml建立同名的 S3 存储桶 上传网页文件到存储桶当中 ACL设置为所有人可读 设置存储桶为静态网站公开 进入属性,

基于JSP+Servlet+Mysql客户管理系统

基于JSPServletMysql客户管理系统 一、系统介绍二、功能展示1.项目骨架2.登录界面3.个人信息修改4.数据分析5.市场管理6.线索管理7、联系人8、客户管理9、交易管理 四、其它1.其他系统实现五.获取源码 一、系统介绍 项目类型&#xff1a;Java web项目 项目名称&#xff1a;基…

LabVIEW使用数据引用减少内存

概览 NI LabVIEW 省略了 开发 软件时 需要 手动 管理 内存。LabVIEW 编译器 始终 会 分析 您 的 代码&#xff0c; 以 确定 如何 优 化 性能 并 减少 所需 的 内存 量。但是&#xff0c; 想要 更多 控制 内存 分配 的 高级 用户 可以 在 LabVIEW 2009 中创建 数据 引用。 内容…

Spring cloud alibaba 整合 Sentinel

Sentinel详解 Docker安装1、拉取镜像2、运行容器访问 整合 spring-cloud-alibaba1、引入Maven依赖2、配置控制台3、编写控制器4、启动Sentinel访问自定义异常处理统一异常处理 整合 OpenFeign引入Maven依赖&#xff1a; 配置&#xff1a;编写 Feign 实现指定 Feign 容错类控制器…

Dubbo分布式服务框架,springboot+dubbo+zookeeper

一Dubbo的简易介绍 1.Dubbo是什么&#xff1f; Dubbo是一个分布式服务框架&#xff0c;致力于提供高性能和透明化的RPC远程服务调用方案&#xff0c;以及SOA服务治理方案。 简单的说&#xff0c;dubbo就是个服务框架&#xff0c;如果没有分布式的需求&#xff0c;其实是不需…

leetcode:寻找数组的中心下标

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

Keil软件激活

首先下载好Keil.rar压缩包 然后关闭本机自带的杀毒软件 然后解压rar压缩包 假定Keil软件已经安装好&#xff0c;这里我就不详述Keil软件的安装过程了 以管理员身份打开Keil软件 打开Keil软件后 &#xff0c;点击如图所示位置 License Management 进入解压之后的文件夹&#x…

LLM InternLM-Chat-7B书生模型、Baichuan-13B-Chat百川模型简单使用

指定GPU运行&#xff1a; #方式一 &#xff08;两行必须放在import torch前面&#xff09; #import os # os.environ[CUDA_VISIBLE_DEVICES] 5#方式二&#xff08;第一种不生效用这种&#xff0c;我这边这种可以生效&#xff09; #import torch #torch.cuda.set_device(5)1、…

设计模式之模板方法实现抽奖功能

1.项目背景 接到一个需求&#xff0c;实现电商营销模块的圆盘抽奖功能。如果大家有关注市面上的抽奖&#xff0c;大致也是圆盘抽奖、九宫格抽奖&#xff0c;随机抽球等等。尤其是电商行业&#xff0c;会有各种各样的活动&#xff0c;因此也会出现各式各样的抽奖&#xff0c;那…

Eclipse控制台输出log4j日志乱码解决

1. 出现乱码可能是编码格式对应不起来&#xff0c;主要是Eclipse控制台编码和log4j编码的匹配 log4j.properties 主要是查看这两个地方编码一致不一致&#xff0c;如果不一致则手动更改成一致编码&#xff0c;GBK或UTF-8

2023年9月广州/重庆/长沙/深圳DAMA-CDGA/CDGP认证考试报名

据DAMA中国官方网站消息&#xff0c;2023年度第三期DAMA中国CDGA和CDGP认证考试定于2023年9月23日举行。 报名通道现已开启&#xff0c;相关事宜通知如下&#xff1a; 考试科目: 数据治理工程师(CertifiedDataGovernanceAssociate,CDGA) 数据治理专家(CertifiedDataGovernanc…