(完整版)ARM汇编指令英文全称及功能描述V2.0

(完整版)ARM汇编指令英文全称及功能描述V2.0
(完整版)ARM汇编指令英文全称及功能描述V2.0

1 ARM指令英文全称及功能描述

V2.0

作者:满光明

2019年4月9日

转载请支持原创,保留此页信息,否则将追究责任

前言

我在工作前买了一本关于ARM指令的书籍,当时出于方便记忆理解的考量,整理了ARM指令,并且加入了英文的全称。了解了英文的全称,能够好的帮助记忆和理解。百度网盘里分享出来的ARM 指令英文全称我看了一下都是我当年整理的版本,但他们把作者的名字去掉了。

几年过去了,ARM技术取得了巨大的进步,ARM以其低功耗、低成本、高性能的优势抢占了移动市场。相信在不远的未来,ARM会普遍运行在个人电脑和服务器上。在可穿戴、边缘计算等前沿领域ARM拥有无与伦比的优势。作为一个技术控,工作以来我一直从事ARM相关的开发工作,计算机领域需要学习的东西太多,但很多基础知识都是相通的。我也希望能把自己这么多年的技术积累拿出来分享给即将走上硬件开发、底层驱动开发的同仁们

本篇仍然以介绍ARM架构以及ARM指令为主,在原来的基础上重新调整了指令顺序,首先介绍ARM 架构不同版本的区别,进而引出基本指令结构,最后详细列出所有指令详表,增强可读性,易于理解。2

一、ARM指令集版本历史

计算机完成一定的操作通过指令来实现,不同的指令方式被称为计算机架构,目前计算机主要有两大架构阵营,一是CISC (Complex Instruction Set Computers)复杂指令集架构,另一种是RISC(Reduced Instruction Set Computers)精简指令集架构。采用CISC架构的代表是Intel和AMD的X86指令集,采用RISC架构的代表是ARM指令集和PowerPC指令集。ARM架构从诞生到今天从V1版本已经升级到了V8版本,各版本代表的分支型号如下表所示。

从图中可以看出,Cortex-A9 架构的CPU采用的是ARMv7的指令集,目前高性能的64位视频处理,比如Cortex-A72,采用的是ARMv8指令集。

高版本的指令集会向下兼容低版本,在低版本的基础上增加了更多特殊用途的指令集,比如浮点运算,CPU加速、数据安全等特殊用途的指令集。

4

5

二、ARM指令集

每种架构的CPU都有一组特殊用途的寄存器,用来存放从存储器读来数据或者指令编码,在ARM中,有一个特殊的寄存器叫CPSR(current program status register),用来存放当前指令执行的状态。比如存放数学运算结果的正负、借位、溢出等情

6

对于32位的CPU架构,ARM指令由32位机器码组成,根据编码格式,ARM指令固定的格式如下:

多数ARM指令可以条件执行,执行的结果可以影响CPSR寄存器的Z、N、C或者V等状态标志位。cond 域不同的值所代表不同的意义。Opcode域代表具体的指令,S为指令的后缀,可加可不加,指令后缀带S表示该指令的结果会影响CPSR寄存器。指令的详细编码格式如下。

Cond域的编码对应的意义如下。

Opcode域的编码对应的意义如下。

9 ARM指令及功能描述详表

10

11

12

13

更多资料请参阅官方文档,ARM Architecture Reference Manual CSDN可以下载。

14

相关主题
相关文档
最新文档