刘帅嵌入式系统-ARM指令集概要

ARM指令分类:

1、跳转指令;

2、数据处理指令;

3、程序状态寄存器传输指令;

4、Load/Store指令;

5、协处理器指令;

6、异常中断指令;

 

ARM指令的一般编码格式如下。

ARM指令字长固定为32bit,典型的ARM指令编码格式如下图所示:

刘帅嵌入式系统-ARM指令集概要

 

--cond:指令执行的条件编码。

--opcode:指令操作符编码。

--S:决定指令的操作是否影响CPSR的值。

--Rd:目标寄存器编码。

--Rn:包含第一个操作数的寄存器编码。

--shifter_opreand:表示第二个操作数。

 

一条典型的ARM指令语法格式如下:

<opcode>{<cond>}{S} <Rd> <Rn> <shifter_operand>

参数说明如下:

<opcode>:是指令助记符,如ADD表示加法运算。

{<cond>}:表示指令执行的条件。

{S}:决定指令的操作是否影响CPSR的值。

<Rd>:表示目标寄存器。

<Rn>:表示包含第一个操作数的寄存器。

<shifter_operand>:表示第2个操作数。

 

ARM指令的条件码域

大部分的ARM指令都是可以又条件的执行,当条件满足时,执行该指令,不满足时,该指令被当作一条空指令NOP,这是处理器进行判断中断请求等操作,然后转到下一条指令。

条件码一共16个,条件码和助记符如下图所示。

刘帅嵌入式系统-ARM指令集概要

相关文章: