当前位置: 首页 > news >正文

Linux基础 -- ARM 32位常用机器码(指令)整理

ARM 32位常用机器码(指令)整理

1. 数据处理指令(运算、逻辑、比较)

指令含义示例备注
MOV赋值(寄存器传输)MOV R0, R1直接将 R1 复制到 R0
MVN取反MVN R0, R1R0 = ~R1
ADD加法ADD R0, R1, R2R0 = R1 + R2
ADC带进位加法ADC R0, R1, R2R0 = R1 + R2 + C(进位)
SUB减法SUB R0, R1, R2R0 = R1 - R2
SBC带借位减法SBC R0, R1, R2R0 = R1 - R2 - !C
RSB逆向减法RSB R0, R1, #0R0 = 0 - R1
AND按位与AND R0, R1, R2R0 = R1 & R2
ORR按位或ORR R0, R1, R2`R0 = R1
EOR按位异或EOR R0, R1, R2R0 = R1 ^ R2
BIC按位清除BIC R0, R1, R2R0 = R1 & ~R2
CMP比较CMP R0, R1计算 R0 - R1 并设置标志
TST按位测试TST R0, R1计算 R0 & R1 并设置标志

2. 乘法和除法指令

指令含义示例备注
MUL无符号乘法MUL R0, R1, R2R0 = R1 * R2
MLA乘法累加MLA R0, R1, R2, R3R0 = (R1 * R2) + R3
MLS乘法减法MLS R0, R1, R2, R3R0 = R3 - (R1 * R2)
UMULL无符号长乘法UMULL R0, R1, R2, R3R1:R0 = R2 * R3
SMULL有符号长乘法SMULL R0, R1, R2, R3R1:R0 = R2 * R3
UDIV无符号除法UDIV R0, R1, R2R0 = R1 / R2(ARMv7 以上)
SDIV有符号除法SDIV R0, R1, R2R0 = R1 / R2(ARMv7 以上)

3. 数据传输指令(加载/存储)

指令含义示例备注
LDR加载数据LDR R0, [R1]R0 = *(R1) 读取 R1 指向的内存
STR存储数据STR R0, [R1]*(R1) = R0
LDM批量加载LDMIA R0!, {R1-R3}读取多个寄存器
STM批量存储STMDB R0!, {R1-R3}存储多个寄存器
PUSH入栈PUSH {R0, R1}ARM 栈向低地址增长
POP出栈POP {R0, R1}

4. 分支与跳转指令

指令含义示例备注
B无条件跳转B label
BL过程调用BL function进入子程序,返回地址存 LR
BX返回或跳转BX LR过程返回(ARM/Thumb 切换)
BLX远程跳转BLX R0可能涉及 Thumb 模式

5. 系统控制指令

指令含义示例备注
NOP空指令NOP什么都不做
SVC软中断SVC #0系统调用
MRS读 CPSRMRS R0, CPSR读取状态寄存器
MSR写 CPSRMSR CPSR, R0修改状态寄存器
WFI进入低功耗WFI等待中断

总结

ARM 32 位指令集中,最常用的指令包括:

  • 数据处理MOVADDSUBCMPAND
  • 加载/存储LDRSTRPUSHPOP
  • 分支BBLBX
  • 系统控制NOPSVCMRSMSR

相关文章:

Linux基础 -- ARM 32位常用机器码(指令)整理

ARM 32位常用机器码(指令)整理 1. 数据处理指令(运算、逻辑、比较) 指令含义示例备注MOV赋值(寄存器传输)MOV R0, R1直接将 R1 复制到 R0MVN取反MVN R0, R1R0 ~R1ADD加法ADD R0, R1, R2R0 R1 R2ADC带进…...

内存中的缓存区

在 Java 的 I/O 流设计中,BufferedInputStream 和 BufferedOutputStream 的“缓冲区”是 内存中的缓存区(具体是 JVM 堆内存的一部分),但它们的作用是优化数据的传输效率,并不是直接操作硬盘和内存之间的缓存。以下是详…...

基于 Spring Boot 的 +Vue“宠物咖啡馆平台” 系统的设计与实现

大家好,今天要和大家聊的是一款基于 Spring Boot 的 “宠物咖啡馆平台” 系统的设计与实现。项目源码以及部署相关事宜请联系我,文末附上联系方式。 项目简介 基于 Spring Boot 的 “宠物咖啡馆平台” 系统设计与实现的主要使用者分为 管理员、用户 和…...

LeetCode 解题思路 7(Hot 100)

解题思路: 初始化窗口元素: 遍历前 k 个元素,构建初始单调队列。若当前索引对应值大于等于队尾索引对应值,移除队尾索引,将当前索引加入队尾。遍历结束时当前队头索引即为当前窗口最大值,将其存入结果数组…...

linux-Dockerfile及docker-compose.yml相关字段用途

文章目录 计算机系统5G云计算LINUX Dockerfile及docker-conpose.yml相关字段用途一、Dockerfile1、基础指令2、.高级指令3、多阶段构建指令 二、Docker-Compose.yml1、服务定义(services)2、高级服务配置3、网络配置 (networks)4、卷配置 (volumes)5、扩…...

deepseek部署:ELK + Filebeat + Zookeeper + Kafka

## 1. 概述 本文档旨在指导如何在7台机器上部署ELK(Elasticsearch, Logstash, Kibana)堆栈、Filebeat、Zookeeper和Kafka。该部署方案适用于日志收集、处理和可视化场景。 ## 2. 环境准备 ### 2.1 机器分配 | 机器编号 | 主机名 | IP地址 | 部署组件 |-…...

微软Office 2016-2024 x86直装版 v16.0.18324 32位

微软 Office 是一款由微软公司开发的办公软件套装,能满足各种办公需求。包含 Word、Excel、PowerPoint、Outlook 和 OneNote 等软件。Word 有强大文档编辑功能和多人协作;Excel 可处理分析大量数据及支持宏编程;PowerPoint 用于制作演示文稿且…...

CMake宏定义管理:如何优雅处理第三方库的宏冲突

在C/C项目开发中,我们常常会遇到这样的困境: 当引入一个功能强大的第三方库时,却发现它定义的某个宏与我们的项目产生冲突。比如: 库定义了 BUFFER_SIZE 1024,而我们需要 BUFFER_SIZE 2048库内部使用 DEBUG 宏控制日志…...

【SpringCloud】Gateway

目录 一、网关路由 1.1.认识网关 1.2.快速入门? 1.2.1.引入依赖 1.2.2.配置路由 二、网关登录校验 2.1.Gateway工作原理 ?2.2.自定义过滤器 2.3.登录校验 2.4.微服务获取用户 2.4.1.保存用户信息到请求头 2.4.2.拦截器获取用户? ?2.5.OpenFeign传递用户 三、…...

Maven入门教程

一、Maven简介 Maven 是一个基于项目对象模型(Project Object Model)的构建工具,用于管理 Java 项目的依赖、构建流程和文档生成。它的核心功能包括: 依赖管理(Dependency Management):自动下载和管理第三方库&#x…...

大数据与金融科技:革新金融行业的动力引擎

大数据与金融科技:革新金融行业的动力引擎 在今天的金融行业,大数据与金融科技的结合正在以惊人的速度推动着金融服务的创新与变革。通过精准的数据分析与智能化决策,金融机构能够更高效地进行风险管理、客户服务、资产管理等一系列关键操作…...

Autosar RTE配置-Port Update配置及使用-基于ETAS工具

文章目录 前言Autosar Rte中enableUpdate参数定义ETAS工具中的配置生成代码分析总结前言 在E2E校验中,需要对Counter进行自增,但每个报文周期不一样,导致自增的周期不一样。且Counter应该在收到报文之后才进行自增。基于这些需求,本文介绍使用RTE Port中的参数enableUpdat…...

【AVRCP】深入理解蓝牙音频 / 视频远程控制规范:从基础到应用

AVRCP(Audio/Video Remote Control Profile)作为蓝牙音频 / 视频控制领域的重要规范,通过其完善的协议架构、丰富的功能分类以及对用户需求的深入考量,为我们带来了便捷、高效的音频 / 视频设备控制体验。无论是在日常生活中的音乐…...

AWS SQS跨账户访问失败排查指南

引言 在使用AWS SQS(Simple Queue Service)时,跨账户访问是常见的业务场景。例如,账户A的应用程序向队列发送消息,账户B的消费者从队列拉取消息。尽管AWS官方文档明确支持此类配置,但在实际应用中,由于权限模型的复杂性,开发者和运维人员常会遇到“策略已配置但无法接…...

算法训练(leetcode)二刷第三十八天 | 1143. 最长公共子序列、1035. 不相交的线、53. 最大子数组和、392. 判断子序列

刷题记录 1143. 最长公共子序列1035. 不相交的线53. 最大子数组和动态规划优化版 392. 判断子序列 1143. 最长公共子序列 leetcode题目地址 本题和300. 最长递增子序列相似(题解)。 使用动态规划: dp数组含义:dp[i][j]表示 以…...

【JavaWeb学习Day20】

Tlias智能学习系统 员工登录 三层架构: Controller:1.接收请求参数(用户名,密码)2.调用Service方法3.响应结果 具体实现: /*** 登录*/ ​ PostMapping("/login") public Result login(Reque…...

2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(二级)真题 + 答案

青少年软件编程(Python)等级考试试卷(二级) ↓↓↓↓↓↓ 模拟 分数:100 题数:37 一、单选题(共25题,共50分) 1. 已知字典如下 dic1 = { name: Ming, age:20, grade: A, Tel:6666666 } 以下哪个代码运行结果为20?( ) A. dic1(age) B. dic1[1] C. dic1(20) D. dic1[ag…...

一、对iic类模块分析与使用

bmp280驱动代码 说明: 1、该模块用于获取气压,温度,海拔等数据。 vcc,gnd接电源 sda ,scl 接iic通信引脚 2、该模块使用iic通信,通过iic发送请求相关类的寄存器值,芯片获取对应寄存器返回的数据…...

ROS 2机器人开发--CMakeLists.txt 文件详解

很多小白宝宝不懂CMakeLists.txt 究竟是干什么的,本文对CMakeLists.txt 文件进行详解 CMakeLists.txt 是 CMake 的核心文件,用户通过这个文件告诉 CMake 如何构建项目。这个文件通常包括设置项目名称、版本号、语言标准、编译器选项、查找依赖包、添加可…...

kan与小波,和不知所云的画图

文章目录 小波应用范围与pde小波的名字 画图图(a):数值解向量 \( u \)图(b):数值解向量 \( v \)结论图4 小波 在你提供的代码中,小波变换(Wavelet Transform)被用于 KANLinear 类中。具体来说,小波变换在 …...

QQ音乐解码工具qmcdump:轻松解密加密音频文件的完整指南

QQ音乐解码工具qmcdump:轻松解密加密音频文件的完整指南 【免费下载链接】qmcdump 一个简单的QQ音乐解码(qmcflac/qmc0/qmc3 转 flac/mp3),仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 你是…...

机器学习赋能系统综述:SyROCCo项目实战解析与NLP应用指南

1. 项目概述:当系统综述遇上机器学习如果你做过系统综述,一定对那种“望洋兴叹”的感觉不陌生。面对动辄成千上万的文献,光是筛选、阅读、提取数据这几步,就足以耗掉一个团队数月甚至数年的精力。更头疼的是,等你终于完…...

红外图像识别 遥感图像检测 yolo11红外小目标检测与红外无人机视角行人和车辆检测

文章目录YOLOv11 红外小目标检测与红外无人机视角行人/车辆检测流程一、引言二、YOLOv11 原理概述2.1 模型架构2.2 工作流程三、数据准备与格式转化3.1 数据收集3.2 标注工具选择3.3 数据集划分3.4 格式转化四、模型训练4.1 环境搭建4.2 配置文件调整4.3 开始训练五、模型评估与…...

C#中Activator的具体使用

Activator 是 C# 中用于动态创建对象实例的核心类,位于 System 命名空间。它通过**反射(Reflection)**机制,在运行时根据类型信息创建对象,而无需在编译时知道具体类型。🔍 一、Activator的核心作用在不知道…...

Evident方法论:用观察、假设、测试构建可复现的数据科学工作流

1. 项目概述:为什么我们需要一种新的数据科学方法论?干了十多年数据科学和机器学习项目,从初创公司到大型企业都待过,我越来越觉得,我们这行当的“工作方式”有点不对劲。项目周期总是难以预估,代码和数据像…...

UE5.3与VS2022编译配置深度优化指南

1. 为什么UE5项目在VS2022里编译慢、报错多、改个头文件就全量重编?我第一次把团队刚升级的UE5.3项目拖进Visual Studio 2022时,整整等了17分42秒才完成首次编译——不是链接,是编译。中间还弹出6个“LNK2019未解析外部符号”、3个“C2039‘G…...

Claude如何30分钟完成PubMed万级文献综述?——基于NEJM、Lancet真实案例的提示工程拆解

更多请点击: https://codechina.net 第一章:Claude医学文献分析案例 在临床研究与循证医学实践中,研究人员常需从海量PubMed、NEJM或Lancet等来源的PDF或HTML格式文献中快速提取关键信息。Claude系列大模型凭借其长上下文(最高20…...

【教育部“人工智能+教育”试点标杆】:从零部署到常态化应用——某省327所乡村校6个月落地实录

更多请点击: https://intelliparadigm.com 第一章:PlayAI教育领域应用案例 PlayAI 作为面向教育场景的轻量级AI交互平台,已在多个K12及职业教育机构落地实践,聚焦于个性化学习路径生成、实时学情反馈与智能助教协同三大方向。其核…...

别再瞎试了!用Matlab手把手教你做拉丁超立方抽样(附10个点二维案例代码)

别再瞎试了!用Matlab手把手教你做拉丁超立方抽样(附10个点二维案例代码) 当面对昂贵的仿真或物理实验时,如何用最少的样本点获取最全面的数据特征?传统随机抽样可能导致样本点扎堆或分布不均,而拉丁超立方抽…...

保姆级教程:用闲置旧电脑和U盘,5分钟搞定OpenWrt软路由安装与基础网络配置

零成本打造高性能软路由:闲置电脑变身网络控制中心 从电子垃圾到网络枢纽的华丽转身 每个科技爱好者家里都有一台被时代淘汰的旧电脑——它们运行缓慢、硬盘老化,却依然能点亮开机。与其让这些设备在角落积灰,不如赋予它们第二次生命&#…...