ARM寻址方式(ARM指令获取操作数的方式)

news2024/11/25 1:03:50

所谓寻址方式,指的是CPU去获取一个操作数的方式,可以是从指令中获取立即数、可以是从寄存器中获取,也可以是从内存中获取。    


          目录

1、立即数寻址

2、寄存器寻址

 3、寄存器移位寻址

4、寄存器间接寻址

5、基址加变址寻址

(1) 前向索引(先自增地址,再执行指令)

(2) 后向索引(先执行指令,再自增地址)


1、立即数寻址

立即数寻址指的是从指令中获取数据,比如

MOV R1,#1        @ 1 是立即数,生成二进制机器码以后,会被保存在指令中

CPU从内存拿到指令(二进制机器码)以后,直接从指令中取出操作数,也就是说参与运算的数来自于机器码,这种方式称为“立即寻址”。

2、寄存器寻址

顾名思义,寄存器寻址指的是参与运算的数据来自于其他寄存器

ADD R1, R2, R3            @ 参与运算的两个数分别来自于R1寄存器和R2寄存器

 3、寄存器移位寻址

寄存器里的数据并不是直接参与运算,而是参与运算的数据先经过移位,然后再参与运算

MOV R1, R2, LSL #1        @ 先将R2寄存器的数据左移1位,然后再保存到R1寄存器中

注意:MOV指令的操作位只有两位,这里要把 R2, LSL #1 看作一个整体 

4、寄存器间接寻址

之所以称之为“间接”,是因为寄存器里保存的是地址,不直接参与运算,通过地址来操作内存,取出数据参与运算

STR R1,[R2]    @ 并不是用R2这个寄存器来参与运算,只是用R2寄存器里保存的内容来操作内存

 

5、基址加变址寻址

下面以STR指令为例。

(1) 前向索引(先自增地址,再执行指令)

MOV R1, #0xFFFFFFFF
MOV R2, #0x40000000
STR R1, [R2, #8]             @ 将 R1 寄存器的数据保存到 R2+8 的地址位置

这里是先让 R2的地址临时自增8,然后将R1寄存器的数据保存到内存中 R2+8 的位置。R2寄存器保存的地址不受影响

如果要改变R2寄存器中的地址,需要在指令末尾加 “ ! ”,注意是英文字符

 

(2) 后向索引(先执行指令,再自增地址)

MOV R1, #0xFFFFFFFF
MOV R2, #0x40000000
STR R1, [R2], #8             @ 将 R1 寄存器的数据保存到 R2 的地址位置,然后让R2自增8

这里是先执行保存指令,然后让R2寄存器中的地址自增。

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

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

相关文章

springboot-mybatis/JPA流式查询

项目中有几个batch需要检查所有的用户参与的活动的状态,以前是使用分页,一页一页的查出来到内存再处理,但是随着数据量的增加,效率越来越低。于是经过一顿搜索,了解到流式查询这么个东西,不了解不知道&…

计算机毕业设计springboot+vue基本微信小程序的演出门票管理系统-票务转票系统

项目介绍 转票是一个传统的行业。根据当前发展现状,网络信息时代的全面普及,转票也在发生着变化,单就出票这一方面,利用手机预约考试正在逐步进入人们的生活。传统的转票方式,不仅会耗费大量的人力、时间,有时候还会出错。小程序系统伴随智能手机为我们提供了新的方向。手机微信…

新兴物种:程序猿的饲养指南

程序猿,一种主要生存在中国印度等亚太国家的新型猿类,生存活动以及消费活动的范围遍布世界各地,其中最优渥的产地位于美国硅谷。 主要的生存环境需求有,两脚兽一切的日用饮食以及物资需求。 该物种所获得的荣誉勋章有&#xff0…

Spring系列之SpringBoot概述及入门

SpringBoot入门 文章目录SpringBoot入门一、SpringBoot是什么?二、Spring的缺点1.配置繁琐2.依赖繁琐三、SpringBoot功能四、SpringBoot起步依赖原理五、SpringBoot快速入门总结一、SpringBoot是什么? SpringBoot是由Pivotal团队提供的全新框架&#xf…

Splunk Enterprise 9.0.X Crack

Splunk Enterprise 9.0.X Crack Splunk 有能力了解用户小型企业中实际发生的情况,并快速采取有目的的行动来了解用户和开发人员的情况。它能够轻松灵活地将简单信息转化为答案,以及自动机器学习支持的分析过程 搜索、分析和可视化,从您的所…

基于springcloud的简单易用的java分布式日志组件

真正的大师,永远都怀着一颗学徒的心! 一、项目简介 基于springcloud的简单易用的java分布式日志组件 二、实现功能 支持基于traceId的日志记录 支持日志查询 支持日志缓冲队列 redis或者kafka 支持错误报警模块 支持内容组合查询功能 支持日志分应用统计条数…

【神奇bug】“金”、“⾦”不是同一个字

身为程序员,总能遇见那些神奇的bug。我前段时间遇到了 “中国黄金” 和 “中国黄⾦”,我咋看咋觉得是同一个词,但是程序就是判定不一致,十分郁闷,多方搜索,最后发现2个金居然不是一个字。真是个神奇的bug&a…

计算机基础学习笔记:操作系统篇之硬件结构,CPU Cache基础概念

三、CPU Cache的数据结构和读取过程 本文知识来源小林Coding阅读整理思考,原文链接请见该篇文章 Cache结构 CPU Cache 是由很多个 Cache Line 组成的,Cache Line 是 CPU 从内存读取数据的基本单位,而 Cache Line 是由各种**标志(…

基于java+springmvc+mybatis+vue+mysql的智能新冠疫苗接种助手

项目介绍 随着全球新冠疫情的蔓延,基本所有的发达国家都开始了全民疫苗接种的行为,在我国更是进行了全民的新冠疫苗接种,为了能够让民众更加方便快捷的进行疫苗的接种我们通过java编程语言,后端ssm框架,前端vue技术开…

【Python百日进阶-数据分析】Day129 - plotly柱状图(条形图):px.bar()实例

文章目录四、实例4.1 Plotly Express条形图4.1.1 加拿大人口4.1.2 一维数据的条形图4.1.3 多维数据条形图4.1.4 彩条4.1.5 堆叠与分组条形图4.1.6 聚集成单色条4.1.7 带文本的条形图4.1.8 填充图案4.1.9 分面子图4.1.10 带Plotly Express的基本水平条形图4.1.11 配置水平条形图…

nacos服务注册与发现

目录 1. 应用系统架构的演变(单应用>分布式) 2. Spring Cloud Alibaba介绍 3. 开发示例 3.1 版本的选择 3.2 nacos安装 3.3 创建工程 3.3.1 创建父工程 3.3.2 创建服务提供者模块 3.3.2 服务消费者 3.4 测试 今天与大家们简单的聊一下&#…

远程的Win11主机没有连接屏幕,通过向日葵远程后只有一个640x480的分辨率选项

背景 远程的 Win11 主机没有连接屏幕,通过向日葵远程后只有一个 640x480 的分辨率选项,界面特别小,用起来很不方便。而且远程主机本身还无法调整分辨率,向日葵上面的工具栏里也没有分辨率这一选项。 问题分析 主要原因是远程主机…

threejs之圆弧

文章目录弧线相关方法getPointssetFromPoints直线样条曲线与贝塞尔曲线样条曲线贝塞尔曲线专栏目录请点击 弧线 一般我们绘制弧线都会使用ArcCurve来进行绘制,他是EllipseCurve的别名,关于他的所有的方法,我们都可以看EllipseCurve 官网例子…

Linux网络协议之UDP协议(传输层)

Linux网络协议之UDP协议(传输层) 文章目录Linux网络协议之UDP协议(传输层)1.深入理解传输层1.1 对于端口号的理解1.2 端口号范围1.3 常用的知名端口号1.4 进程和端口号的两个问题1.5 查看网络状态命令(netstat)2.UDP协议2.1 UDP协议格式2.2 UDP的特点2.3 面向数据报2.4 UDP的缓…

基于nodejs仿京东商城系统的设计与实现.zip(论文+源码+ppt文档+视频录制)

第一章绪论 3 1.1项目开发的背景和意义 3 1.2国内外研究的现状 3 1.3研究的主要内容 4 第2章系统相关技术介绍 4 2.1 相关技术介绍 4 2.2 系统环境开发条件 5 第三章系统分析 6 3.1可行性分析 6 3.1.1技术性可行性 6 3.1.2经济性可行性 6 3.1.3操作性可行性 7 3.2功能需求分析 …

(Java)【深基9.例1】选举学生会

【深基9.例1】选举学生会 一、题目描述二、输入格式三、输出格式四、样例输入五、样例输出六、失败经历七、正确代码八、正确思路及易错点(1)题目分析(2)思路分析(3)StringBuffer: 线程安全的可变字符串①S…

二十四、CANdelaStudio深入-ExtData编辑

本专栏将由浅入深的展开诊断实际开发与测试的数据库编辑,包含大量实际开发过程中的步骤、使用技巧与少量对Autosar标准的解读。希望能对大家有所帮助,与大家共同成长,早日成为一名车载诊断、通信全栈工程师。 本文介绍CANdelaStudio的ExtData编辑,欢迎各位朋友订阅、评论,…

推荐系统学习笔记-deep crossing

由来 2016年由微软提出, 完整的解决了特征工程、稀疏向量稠密化, 多层神经网络进行优化目标拟合等一系列深度学习在推荐系统的应用问题。 这个模型涉及到的技术比较基础,在传统神经网络的基础上加入了embedding, 残差连接等思想&…

K8s CICD实战

K8s Network之Ingress PDF路径: 链接:https://pan.baidu.com/s/17DxUD8KN7pU1UKIR1Ejemg 提取码:dwf5 一、如果项目需要修改某些代码,怎么办? (1)重新打成jar包 (2)重新制作Dockerf…

javaSE - 异常(Exception 或 RuntimeException)

一、异常的背景 1.1、初识异常 其实在我们开发中,就是代码出现意外状况。影响到程序的运行。 其实,在我们接触代码开始,就一直在接触异常,只是从来没有分类。 这点在java中,更加明显。 现在我们就来基本了解一下异常。…