ARM V8 A32常用指令集

news2024/11/16 10:53:00

文章目录

  • 1. 算术指令
    • 1.1 加法命令ADD\ADDS
    • 1.2 带进位加法命令ADC\ADCS
    • 1.3减法命令SUB\SUBC
    • 1.4带借位减法命令SBC\SBCS
  • 2.逻辑运算指令
    • 2.1逻辑与指令AND、ANDS
    • 2.2位清零指令BIC
    • 2.3逻辑或指令ORR\ORRS
    • 2.4逻辑异或指令
    • 2.5 逻辑左移LSL
    • 2.6逻辑右移LSR
  • 3.比较指令
    • 3.1直接比较指令CMP
    • 3.2负数比较指令CMN
  • 4.移动指令
    • 4.1MOV指令
    • 4.2MVN指令
  • 5.跳转指令
    • 5.1 B指令
    • 5.2 BL指令
    • 5.3 BX指令
    • 5.4 BLX指令
  • 6. 加载/存储指令
    • 6.1 LDR\LDRB\LDRH指令
    • 6.2 STR\STRB\STRH指令
  • 7. 批量数据加载/存储指令指令

记录ARM V8 A32常用指令集。

调试时常用的汇编命令:ADD\SUB\MOV\LDR\STR\BL\CMP等命令

具体可以参考官方文档:DUI0801C_armasm_user_guide

1. 算术指令

1.1 加法命令ADD\ADDS

在这里插入图片描述

1.2 带进位加法命令ADC\ADCS

在这里插入图片描述

1.3减法命令SUB\SUBC

在这里插入图片描述

1.4带借位减法命令SBC\SBCS

在这里插入图片描述

2.逻辑运算指令

2.1逻辑与指令AND、ANDS

在这里插入图片描述

2.2位清零指令BIC

在这里插入图片描述

2.3逻辑或指令ORR\ORRS

在这里插入图片描述

2.4逻辑异或指令

在这里插入图片描述

2.5 逻辑左移LSL

移位进来值补0
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/98d41fef2fb64cf09a74bef9b32b3e80.pn

2.6逻辑右移LSR

在这里插入图片描述

3.比较指令

3.1直接比较指令CMP

在这里插入图片描述

3.2负数比较指令CMN

在这里插入图片描述

4.移动指令

4.1MOV指令

在这里插入图片描述

4.2MVN指令

在这里插入图片描述

5.跳转指令

跳转指令用于实现程序流程的跳转,在ARM程序中有两种方法可以实现程序流程的跳转:
使用专门的跳转指令。
直接向程序计数器PC写入跳转地址值。
通过向程序计数器PC写入跳转地址值,可以实现在4GB的地址空间中的任意跳转,在跳转之前结合使用MOV LR,PC等类似指令,可以保存将来的返回地址值,从而实现在4GB连续的线性地址空间的子程序调用。
ARM指令集中的跳转指令可以完成从当前指令向前或向后的32MB的地址空间的跳转,包括以下4条指令:
B 跳转指令
BL 带返回的跳转指令
BLX 带返回和状态切换的跳转指令
BX 带状态切换的跳转指令

5.1 B指令

在这里插入图片描述

5.2 BL指令

在这里插入图片描述

5.3 BX指令

在这里插入图片描述

5.4 BLX指令

在这里插入图片描述

6. 加载/存储指令

6.1 LDR\LDRB\LDRH指令

在这里插入图片描述
备注:LDR R,label 和 LDR R,=label的区别
LDR 是ARM中的指令,也是伪指令。
当用 LDR r, =imd // r 为寄存器, imd为立即数
LDR 是一条伪指令。编译器会根据 立即数的大小,决定用 ldr 指令或者是mov或mvn指令。
当imd能用mov或者mvn操作时,就将它翻译成一条mov或mvn指令。当imd大于mov或mvn能够操作的数时,编译器会将imd存在一个内存单元中,然后再用一条ldr指令加载这个内存单元的的值到寄存器中。
LDR r, label 和 LDR r, =label的区别:
LDR r, =label 会把label表示的值加载到寄存器中,而LDR r, label会把label当做地址,把label指向的地址中的值加载到寄存器中。
例如label的值是 0x8000, LDR r, =label会将 0x8000加载到寄存器中,而LDR r, label则会将内存0x8000处的值加载到寄存器中。

6.2 STR\STRB\STRH指令

在这里插入图片描述

7. 批量数据加载/存储指令指令

LDM 批量数据加载指令
STM 批量数据存储指令
在这里插入图片描述

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

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

相关文章

2024年华为杯研究生数学建模竞赛C题 波形机理建模+GBDT 完整文章代码|进阶可视化

2024年华为杯研究生数学建模竞赛C题 波形机理建模GBDT 完整文章代码|进阶可视化 全部问题已经更新完成,可视化图表20余张,代码量千余行,实在累到了… 由于篇幅原因,此处放出部分内容供参考~ 完整内容可以从底部名片的群中获取~ …

vue3监听子组件的生命周期

1.Vue3使用vue&#xff0c;vue2使用hook template:<compG vue:mounted"doSomething"></compG>script://监听子组件生命周期let doSomething (e: any) > {console.log("没有啊11", e);}; 2.打印结果

昇思MindSpore进阶教程--轻量化数据处理

大家好&#xff0c;我是刘明&#xff0c;明志科技创始人&#xff0c;华为昇思MindSpore布道师。 技术上主攻前端开发、鸿蒙开发和AI算法研究。 努力为大家带来持续的技术分享&#xff0c;如果你也喜欢我的文章&#xff0c;就点个关注吧 正文开始 在资源条件允许的情况下&#…

【趣学Python算法100例】数制转换

问题描述 给定一个M进制的数x&#xff0c;实现对x向任意一个非M进制的数的转换。 问题分析 要搞定这道题&#xff0c;关键在于学会不同数制之间的转换&#xff0c;主要是二进制、八进制、十六进制和十进制这几种。理解下面这几个概念非常重要&#xff1a; 基数&#xff1a;…

Go基础学习06-Golang标准库container/list(双向链表)深入讲解;延迟初始化技术;Element;List;Ring

基础介绍 单向链表中的每个节点包含数据和指向下一个节点的指针。其特点是每个节点只知道下一个节点的位置&#xff0c;使得数据只能单向遍历。 示意图如下&#xff1a; 双向链表中的每个节点都包含指向前一个节点和后一个节点的指针。这使得在双向链表中可以从前向后或从后…

Docker仓库搭建

目录 一、Docker Hub 二、私有Registry仓库搭建 1、下载并开启仓库镜像registry 2、Registry加密传输 3、建立一个registry仓库 4、为客户端建立证书 5、测试 6、为仓库建立登录认证 三、Harbor仓库搭建 Docker 仓库&#xff08;Docker Registry&#xff09; 是用于存…

8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征

特征工程是机器学习流程中的关键步骤&#xff0c;在此过程中&#xff0c;原始数据被转换为更具意义的特征&#xff0c;以增强模型对数据关系的理解能力。 特征工程通常涉及对现有数据应用转换&#xff0c;以生成或修改数据&#xff0c;这些转换后的数据在机器学习和数据科学的…

书生大模型实战营学习[9] OpenCompass 评测 InternLM-1.8B 实践

准备工作 打开开发机&#xff0c;选择cuda11.7环境&#xff0c;A100选择10%&#xff0c;点击创建&#xff0c;然后进入开发机即可&#xff0c;和之前的操作一样。接下来创建环境&#xff0c;下载必要的依赖包 conda create -n opencompass python3.10 conda install pytorch2…

什么是网络安全自动化以及优势与挑战

目录 网络安全自动化的工作原理 网络安全自动化的好处 增强的安全功能 改善表现和姿势 降低安全成本 简化的安全合规性和审计 更好的端点管理 网络安全自动化的挑战 耗时且容易出错的安全流程 可见性降低&#xff0c;风险和成本增加 合规管理 有用的网络安全自动化…

2024年合肥市职业院校技能大赛(中职组)赛 网络安全 竞赛样题

2024年合肥市职业院校技能大赛(中职组)赛 网络安全 竞赛样题 (总分100分) 培训、环境、资料、考证 公众号&#xff1a;Geek极安云科 网络安全群&#xff1a;624032112 网络系统管理群&#xff1a;223627079 网络建设与运维群&#xff1a;870959784 极安云科专注于技能提升&am…

基于nodejs+vue的旅游管理系统

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

Docker启动失败,Failed to start docker,只需三个步骤,看我怎么搞定它!

在项目部署上线的时候 1打开hyper-v虚拟机 怎么打开呢&#xff1f; 命令提示符输入control,点击回车&#xff0c;打开控制面板&#xff0c;打开“程序和功能”&#xff0c;“启用和关闭windows功能”&#xff0c;选择Hyper-v&#xff0c;勾选下面的每一项内容。完成之后又点…

机器学习-模型集成

文章目录 模型集成为什么要集成&#xff1f;模型集成要解决的问题主要的集成思想 Committees多个模型的结果进行融合。BaggingBagging 特点 BoostingAdaBoost算法过程 GBDT负梯度拟合 XGBoostXGBoost 参数通用参数booster 参数学习目标参数 模型保存 模型集成 三个臭皮匠顶一个…

结构连接能否成为精神病早期的功能预后标志?

TLDR: 该研究发现精神病首次发作的患者&#xff08;未经药物治疗&#xff09;脑部存在广泛的结构连接减少&#xff0c;尤其是前额叶-纹状体-丘脑系统的连接异常。基线时的脑部结构连接可以有效预测患者12个月后的功能恢复情况。研究表明&#xff0c;脑部结构连接的减少可能与精…

【游戏策划 还能这么玩】

长期陷入低迷的桌游圈最近重新焕发出希望的光芒。由腾讯和网易离职的策划及美术团队开发的桌游《王冠继承者之战》在一小时内众筹金额突破20万。 对于游戏策划者来说&#xff0c;不妨拓展思路&#xff0c;将目光转向尚未充分挖掘的桌游市场&#xff0c;那里可能蕴藏着让人意想…

C++ 标准模板库(STL)之集合(set)

啊&#xff0c;哈喽&#xff0c;小伙伴们大家好。我是#张亿&#xff0c;今天呐&#xff0c;学的是集合&#xff08;set&#xff09; C 标准模板库&#xff08;STL&#xff09;之集合&#xff08;set&#xff09; (下面代码中的std::要去掉) 在C标准模板库&#xff08;STL&am…

HCIP——HCIA回顾

第一章.HCIA复习 引入场景 其实IA我们主要学习的无非就是数据包在网络中传递的基本过程&#xff0c;我们设计一个场景&#xff0c;通过回顾web页面的请求过程&#xff0c;将IA学过的基本网络工作原理来串一遍。 (在本例中&#xff0c;ISP网络为学校提供了DNS服务&#xff0c;…

数据恢复新宠!2024年Top3宝藏工具

在这个离不开电脑和手机的时代&#xff0c;U盘是我们存储照片、文档、视频的得力助手。万一U盘格式化了&#xff0c;别担心&#xff0c;数据很可能能恢复。2024年流行的三种恢复方法&#xff0c;都能帮你找回丢失的数据。记住&#xff0c;格式化后数据并非真正消失&#xff0c;…

【SpringBoot详细教程】-05-整合Druid操作数据库【持续更新】

文末看往期系列教程&#xff1a;给个关注可好&#xff1f; &#x1f332; SpringData简介 对于数据访问层&#xff0c;无论是 SQL (关系型数据库) 还是 NoSql (非关系型数据库)&#xff0c;Spring Boot 底层都是采用 Spring Data 的方式进行统一处理。 Spring Boot 底层都是采…

Python实现:时间序列趋势外推法应用-龚珀兹曲线拟合

龚珀兹曲线 下表数据为某跨国公司1989-2021年的年销售量数据&#xff0c;使用适合的模型预测该公司2022年的销售额&#xff0c;并得出理由。 部分数据如下表&#xff08;具体数据从主页资源下载&#xff09;&#xff1a; 年份时序&#xff08;t&#xff09;总额&#xff08;y…