首页 理论教育 ARM处理器32位指令集学习指导

ARM处理器32位指令集学习指导

时间:2023-10-18 理论教育 版权反馈
【摘要】:32位,处理器执行的是字方式的ARM指令。ARM处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。指令集 ①32位ARM指令集;②16位Thumb指令集。ARM汇编程序采用分段式设计,以程序段为单位组织代码。

ARM处理器32位指令集学习指导

本章对ARM处理器的体系结构、编程和开发工具作了较全面的介绍。其中包括ARM体系结构、ARM内核、ARM编程模型、ARM汇编指令、ARM汇编程序设计、ARM集成开发工具。

1.ARM内核体系结构

ARM是一类微处理器,同时也是一个公司的名字。ARM公司于1990年11月在英国剑桥成立(原名Advanced RISC Machine),专门从事基于RISC技术的芯片设计、开发和授权。目前,ARM处理器(即采用ARM IP核的处理器)已遍及工业控制、通信系统、无线通信网络系统、消费类电子产品、成像和安全产品等各类产品市场。

(1)ARM体系结构版本

ARM体系结构共定义了8个版本,版本号分别为v1~v8。

(2)ARM内核

ARM处理器内核不但包括CPU,还包括高速缓存、MMU控制器、嵌入式跟踪宏单元、TCM接口、总线控制逻辑、AHB接口、协处理器、中断控制器等电路模块。整个ARM处理器内核的核心是CPU。

2.ARM编程模型

(1)处理器状态

1)ARM状态。32位,处理器执行的是字方式的ARM指令。

2)Thumb状态。16位,处理器执行的是半字方式的Thumb指令。

(2)处理器模式ARM体系结构支持7种处理器模式:用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。

(3)寄存器集ARM处理器共有37个32位寄存器,包括31个通用寄存器:R0~R15、R13_svc、R14_svc、R13_abt、R14_abt、R13_unt、R14_unt、R13_irq、R14_irt和R8_frq~R14_frq;以及6个状态寄存器:CPSR、SPSR_svc、SPSR_abt、SPSR_unt、SPSR_irq和SPSR_fiq

(4)体系结构直接支持的数据类型ARM处理器支持的数据类型有字节(8位)、半字(16位)和字(32位)。

1)字节(Byte)。字节的长度为8位(bit)。

2)半字(Half-Word)。半字的长度为16位(bit)。半字必须以2B为边界对齐。(www.xing528.com)

3)字(Word)。字的长度为32位(bit)。字必须以4B为边界对齐。

(5)存储器及存储器映射I/O ARM处理器采用冯·诺依曼结构,指令和数据共用一条32位数据总线,只有加载、存储和交换指令可访问存储器中的数据。

(6)异常 只要正常的程序流被暂时中止,处理器就进入异常模式。当发生异常时,处理器在处理异常之前,必须先保存当前的状态。当异常处理完成后,需要将处理器的状态恢复到处理异常之前,之后当前程序方可继续执行。ARM处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。

3.ARM汇编指令

ARM体系结构具有32位ARM指令集和16位Thumb指令集,ARM指令集效率高,但是代码密度低;而Thumb指令集具有较高的代码密度,却仍然保持ARM的大多数性能上的优势,它是ARM指令集的子集。

(1)ARM处理器寻址方式 ①寄存器寻址;②立即寻址;③寄存器移位寻址;④寄存器间接寻址;⑤基址寻址;⑥多寄存器直接寻址;⑦堆栈寻址;⑧相对寻址。

(2)指令集 ①32位ARM指令集;②16位Thumb指令集。

(3)伪指令 ARM汇编程序由机器指令、伪指令和宏指令组成。伪指令不像机器指令那样在处理器运行期间由机器执行,而是在汇编程序对源程序汇编期间由汇编程序处理。

4.ARM汇编程序设计

(1)ARM汇编语句格式 语句格式如下:

{symbol}{instruction|directive|pseudo-instruction}{;comment}

(2)ARM汇编语言符号 在ARM汇编语言中,符号(Symbols)可以代表地址(Ad-dresses)、变量(Variables)和数字常量(Numeric Constants)。

(3)ARM汇编语言表达式 表达式是由符号、数值、单目或多目操作符以及括号组成的。

(4)ARM汇编程序结构ARM汇编程序除了使用ARM汇编指令外,还将大量使用各种伪指令。ARM汇编程序采用分段式设计,以程序段为单位组织代码。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈