ARM指令集特点寻址方式和指令分类详解习题.ppt
- 格式:ppt
- 大小:653.51 KB
- 文档页数:73
第2章ARM指令分类及其寻址方式在本章中,将介绍ARM指令分类以及各类指令对应的寻址方式。
2.1 ARM指令集概要介绍在本节中,将介绍ARM指令相关的一些基本概念,包括指令的分类、指令的一般编码格式以及ARM指令中的条件码。
2.1.1 ARM指令的分类ARM指令集可以分为跳转指令、数据处理指令、程序状态寄存器(PSR)传输指令、Load/Store指令、协处理器指令和异常中断产生指令6类。
2.1.2 ARM指令的一般编码格式ARM指令字长为固定的32位。
一条典型的ARM指令编码格式如下:其中的符号及参数说明如下。
●opcode:指令操作符编码。
●cond:指令执行的条件编码。
●S:决定指令的操作是否影响CPSR的值。
●Rd:目标寄存器编码。
●Rn:包含第1个操作数的寄存器编码。
●shifter_operand:表示第2个操作数。
一条典型的ARM指令语法格式如下所示:<opcode>{<cond>}{S} <Rd>,<Rn>,<shifter_operand>其中的符号及参数说明如下。
●<opcode>:是指令助记符,如ADD表示算术加操作指令。
●{<cond>}:表示指令执行的条件。
●{S}:决定指令的操作是否影响CPSR的值。
●<Rd>:表示目标寄存器。
●<Rn>:表示包含第1个操作数的寄存器。
●<shifter_operand>:表示第2个操作数。
2.1.3 ARM指令的条件码域大多数ARM指令都可以有条件地执行,也就是根据CPSR中的条件标志位决定是否执行该指令。
当条件满足时执行该指令,条件不满足时该指令被当作一条NOP指令,这时处理器进行判断中断请求等操作,然后转向下一条指令。
在ARMv5之前的版本中,所有的指令都是有条件执行的,从ARMv5版本开始,引入了一些必须无条件执行的指令。