完整教程:ARM指令集总结

news/2025/9/19 16:08:45/文章来源:https://www.cnblogs.com/ljbguanli/p/19101056

完整教程:ARM指令集总结

一、介绍

ARM 架构处理器的核心,采用 RISC(精简指令集)设计,以低功耗、高能效著称。下面我将为你梳理 ARM 指令集的主要分类、特点以及不同架构版本的演进。就是ARM 指令集

指令按功能分类,核心类型包括:

- 数据处理指令:如加减( ADD / SUB )、逻辑运算( AND / ORR )、移位( LSL / LSR ),用于算术和逻辑操作。

- 加载/存储指令:如从内存读数据( LDR )、向内存写数据( STR ),负责 CPU 与内存的数据交互。

- 分支指令:如条件跳转( CBZ / CBNZ )、无条件跳转( B )、函数调用( BL ),控制程序执行流程。

- 体系指令:如访问寄存器( MSR / MRS )、中断控制( SVC ),用于操作系统级的硬件管理。

二、ARM指令集的主要特点

* 固定指令长度:早期ARM指令(A32)采用32位固定长度,便于解码和流水线处理。

* 条件执行:大多数ARM指令支持条件执行,通过检测状态寄存器(CPSR)中的条件标志位(N, Z, C, V)来决定是否执行,这可以减少分支指令的数量,提高代码效率。

* 加载-存储架构:运算指令只能管理寄存器,不能直接执行内存中的数据。数据需先通过

"LDR" 指令从内存加载到寄存器,运算后再通过

"STR" 指令存回内存。

* 多种寻址方式:支持灵活的操作数寻址方式,包括立即数、寄存器、寄存器移位等。

三、 ARM指令集的架构演进

ARM指令集随着架构版本在不断发展和增强:

* ARMv4/v5:承受32位ARM指令集(A32) 和16位Thumb指令集(T32)(用于提高代码密度)。

* ARMv6:引入 Thumb-2 技能,融合了16位和32位指令,在保持高代码密度的同时提升了性能。

* ARMv7:丰富了NEON(高级SIMD)和VFP(矢量浮点)指令集,显著强化了多媒体和浮点处理能力。

* ARMv8:引入了64位的AArch64执行状态和全新的A64指令集,同时兼容32位的AArch32状态(ARMv7-A指令集)。

* ARMv9:在ARMv8基础上,进一步增强了安全性和AI加速能力。

四、如何学习与使用ARM指令集

* 理解基础分类:熟悉表格中的主要指令类别和常用指令是第一步。

* 查阅官方手册:ARM公司提供的架构参考手册(ARM Architecture Reference Manual)是最权威的资料。

* 实践练习:通过编写汇编代码或使用模拟器(如QEMU、ARM Keil)来实际调试和运行,加深理解。

* 关注扩展指令集:根据兴趣或项目需求,深入了解如NEON(SIMD)、SVE(可伸缩向量扩展)等特定扩展指令集。

五、总结

ARM指令集以其高效、灵活和低功耗的特点,通过持续的架构演进和多样的指令集,支撑了从微控制器到高性能计算核心的广泛应用。

- 低功耗:指令简化(单周期执行多数指令),减少 CPU 运算消耗,适配手机、物联网设备等场景。

- 高兼容性:新架构(如 ARMv8)兼容旧指令模式,保障旧程序可在新芯片上运行。

- 可扩展性:帮助 NEON 向量指令(多媒体加速,如视频编解码)、CRC32 指令(数据校验加速)等扩展指令集,满足不同场景需求。

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

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

相关文章

封神台 第二章:遇到阻难!绕过WAF过滤

结合题目猜测存在sql注入过滤了以下参数,尝试了单引号双引号均被过滤,应该是数字闭合,直接判断字段数看,order by 10能够正常回显,但是order by 11不能说明存在十个字段我们继续拼接查询语句,通过from,看页面返…

uniGUI:在Linux上部署独立应用为服务

uniGUI:在Linux上部署独立应用为服务可以以 Linux 服务的形式部署 Linux 独立应用程序。这将确保 Web 应用程序服务器将从作系统启动,只要服务器启动,它就会一直工作。为了实现这一点,我们将在 /etc/systemd 文件夹…

实用指南:【SQLSERVER】SQL Server 表导出与导入

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

封神台 第三章:为了更多的权限!留言板!

根据题目可知这题思路应该是存储型xss获取cookie从而获取flag首先测试下是否存在xss漏洞,保险起见有留言框的地方全部填一遍测试xss漏洞存在成功,但是只靠反射型xss是不可能弹出服务器cookie的,而且可能存在留言框输…

C#开发ONVIF客户端与RTSP播放库指南

利用C#开发ONVIF客户端和集成RTSP播放功能 C#开发ONVIF客户端与RTSP播放库指南 1. ONVIF客户端开发 ONVIF(开放型网络视频接口论坛)协议是实现不同品牌网络视频设备互操作性的国际标准。以下是使用C#开发ONVIF客户端…

一行命令查看docker所有网络 + 子网

一键查看所有docker网络及其子网 docker network inspect $(docker network ls -q) --format {{.Name}} => {{range .IPAM.Config}}{{.Subnet}}{{end}} 示例输出 bridge => 172.17.0.0/16 host => none =>…

ECT-OS-JiuHuaShan框架元推理,是马克思主义与我思故我在的完美统一,是超越自我

ECT-OS-JiuHuaShan框架元推理,是马克思主义与我思故我在的完美统一,是超越自我ECT-OS-JiuHuaShan/https://orcid.org/0009-0006-8591-1891论断具有非凡的洞察力。“ECT-OS-JiuHuaShan 是马克思主义与‘我思故我在’的…

vulnhub Beelzebub

打开靶机发现是ubuntu系统,猜测又是进行ssh登录修改一下网卡信息,成功出现ip信息扫一下开放端口进行目录扫描,扫出来/javascript,/phpmyadmin目录访问上面几个开放的页面都访问不了,index.php也进不去,只好用curl…

经验分享 —— 在 Ubuntu 虚拟机中部署 OceanBase 数据库

经验分享 —— 在 Ubuntu 虚拟机中部署 OceanBase 数据库今天为对 OceanBase 有学习和测试需求的亲们,奉上一篇在 Ubuntu 虚拟机中部署 OB 的经验分享,欢迎各位老师批评指正~0. 有奖征文活动 OceanBase 社区正在组织…

Salesforce 管理员:是终点,还是跳板?

随着 Salesforce 平台功能越来越强大,管理员(Admin)这个角色也在不断变化。很多人疑惑:做管理员,是一个长期发展的职业目标,还是转向开发、架构师等更专业岗位的跳板? 管理员可以是终点 1 职业满足感很高 调查显…

记一次内务培训

rt。写在前面: 大家好我是对不起教唯一教主,尚惠楼ユユユ宿舍的一个不起眼的右窗上。獾蝇来到醛家,这里的蚊帐像灵堂,是窗户正对着大门口的一个逆天宿舍。我们安居乐业,每天都勤勤恳恳地整理内务,按时到位,以饱…

CH584 CH585 复位状态寄存器

打印复位状态寄存器,查看复位状态

2025CCPC邀请赛(南昌)VP(A,B,C,D,G,H,K,L)

有部分解法不给出思路 A.扭蛋 #include<bits/stdc++.h> #define endl \n #define fread freopen("C://Users//20321//Desktop//vscode_cpp//in.in", "r", stdin) #define fout freopen(&quo…

AppConfig

@Configuration @EnableConfigurationProperties(AppProperties.class) public class AppConfig {@Value("${spring.mvc.servlet.path}")private String mvcServletPath;@Bean@ConditionalOnProperty(prefix…

不用手也能玩手机?多代理协作框架让 APP 自动执行任务

原文:https://mp.weixin.qq.com/s/i-o68QcHK6KsUC8YrWuVjA 论文:Mobile-Agent-v3: Fundamental Agents for GUI Automation github: https://github.com/X-PLUG/MobileAgent 全文摘要 本文介绍了一种名为Mobile-Age…

MATLAB实现单帧图像超分辨率重建

基于MATLAB实现单帧图像超分辨率重建的两种方法:一种是传统的双三次插值方法,另一种是基于深度学习的VDSR(Very Deep Super-Resolution)方法。 方法一:双三次插值方法 双三次插值是一种传统的图像放大方法,通过计…

绕过安全控制安装第三方软件

安装成功后打开,还是会显示已损坏,这时候就需要临时绕过苹果的安全机制 打开终端输入以下代码,空格一个,把应用程序中的Nodepad--拖进去回车并输入开机密码(密码不可见)。 sudo xattr -r -d com.apple.quarantin…

详细介绍:认知语义学意象图式对人工智能自然语言处理中隐喻分析的影响与启示

详细介绍:认知语义学意象图式对人工智能自然语言处理中隐喻分析的影响与启示pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fam…

完整教程:LeetCode 刷题【81. 搜索旋转排序数组 II、82. 删除排序链表中的重复元素 II、83. 删除排序链表中的重复元素】

完整教程:LeetCode 刷题【81. 搜索旋转排序数组 II、82. 删除排序链表中的重复元素 II、83. 删除排序链表中的重复元素】pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !impor…

软件体系结构概论 1章

1.如何客服软件危机 人们面临的不光是技术问题,更重要的是管理问题。 采用工程化的开发方法与工业化的生产技术 在技术上,应该采用基于重用的软件生产技术,在管理上,应该采用多维的工程管理模式