2024年6月4日发(作者:)
ARM微处理器的指令系统
ARM微处理器的指令系统
介绍ARM指令集、Thumb指令集,以及各类指令对应的寻址方
式,通过对本章的阅读,希望读者能了解ARM微处理器所支持的指令
集及具体的使用方法。
本章的主要内容有:
- ARM指令集、Thumb指令集概述。
- ARM指令集的分类与具体应用。
- Thumb指令集简介及应用场合。
3.1 ARM微处理器的指令集概述
3.1.1 ARM微处理器的指令的分类与格式
ARM微处理器的指令集是加载/存储型的,也即指令集仅能处理
寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器
的访问则需要通过专门的加载/存储指令来完成。
ARM微处理器的指令集可以分为跳转指令、数据处理指令、程序
状态寄存器(PSR)处理指令、加载/存储指令、协处理器指令和异常
产生指令六大类,具体的指令及功能如表3-1所示(表中指令为基本
ARM指令,不包括派生的ARM指令)。
表3-1 ARM指令及功能描述
助记符
ADC
ADD
AND
B
BIC
BL
BLX
BX
CDP
CMN
CMP
EOR
指令功能描述
带进位加法指令
加法指令
逻辑与指令
跳转指令
位清零指令
带返回的跳转指令
带返回和状态切换的跳转指令
带状态切换的跳转指令
协处理器数据操作指令
比较反值指令
比较指令
异或指令
LDC
LDM
LDR
MCR
MLA
MOV
MRC
MRS
MSR
MUL
MLA
MVN
ORR
RSB
RSC
SBC
STC
STM
STR
SUB
SWI
SWP
TEQ
TST
存储器到协处理器的数据传输指令
加载多个寄存器指令
存储器到寄存器的数据传输指令
从ARM寄存器到协处理器寄存器的数据传输指令
乘加运算指令
数据传送指令
从协处理器寄存器到ARM寄存器的数据传输指令
传送CPSR或SPSR的内容到通用寄存器指令
传送通用寄存器到CPSR或SPSR的指令
32位乘法指令
32位乘加指令
数据取反传送指令
逻辑或指令
逆向减法指令
带借位的逆向减法指令
带借位减法指令
协处理器寄存器写入存储器指令
批量内存字写入指令
寄存器到存储器的数据传输指令
减法指令
软件中断指令
交换指令
相等测试指令
位测试指令
3.1.2 指令的条件域
当处理器工作在ARM状态时,几乎所有的指令均根据CPSR中条
件码的状态和指令的条件域有条件的执行。当指令的执行条件满足时,
指令被执行,否则指令被忽略。
每一条ARM指令包含4位的条件码,位于指令的最高4位[31:28]。
条件码共有16种,每种条件码可用两个字符表示,这两个字符可以添
加在指令助记符的后面和指令同时使用。例如,跳转指令B可以加上
后缀EQ变为BEQ表示“相等则跳转”,即当CPSR中的Z标志置位
时发生跳转。
在16种条件标志码中,只有15种可以使用,如表3-2所示,第
16种(1111)为系统保留,暂时不能使用。
表3-2 指令的条件码
发布评论