ARM处理器基本指令大全

目录

一、ARM的7种运行模式和2种工作状态

二、ARM支持的异常类型

三、ARM基本指令及功能描述


 


一、ARM的7种运行模式和2种工作状态

1、七种运行模式

处理器工作模式

特权模式

异常模式

说明

用户(user)模式

 

 

用户程序运行模式

系统(system)模式

该组模式下可以任意访问系统资源

 

运行特权级的操作系统任务

一般中断(IRQ)模式

通常由系统异常状态切换进该组模式

普通中断模式

快速中断(FIQ)模式

快速中断模式

管理(supervisor)模式

提供操作系统使用的一种保护模式,swi命令状态

中止(abort)模式

虚拟内存管理和内存数据访问保护

未定义指令终止(undefined)模式

支持通过软件仿真硬件的协处理

2、两种工作状态

1、ARM状态:32位,ARM状态执行字对齐的32位ARM指令。

2、Thumb状态,16位,执行半字对齐的16位指令。

3、用Bx Rn指令来进行两种状态的切换:

其中Bx是跳转指令,而Rn是寄存器(1个字,32位),如果Rn的位0为1,则进入Thumb状态;如果Rn的位为0,这进入ARM状态。(原 因:ARM指令的后两位始终为0,没有用,而Thumb指令的后一位始终为0,没有用,因此采用位0来表示ARM指令与Thumb指令的切换标志位。)

注:1)ARM和Thumb两种状态之间的切换不影响处理器的工作模式和寄存器的内容。

       2)ARM处理器在处理异常时,不管处理器处于什么状态,则都将切换到ARM状态。

另外:1)ARM的M系列主要用Thumb指令,ARM9和A系列主要用ARM指令

           2)S3C2440.S启动代码中根本就没用Thumb指令

二、ARM支持的异常类型

ARM支持的异常类型
异常类型 进入的模式 地址(异常向量) 优先级
复位 管理模式 0x0000, 0000 1(最高)
未定义的指令 未定义模式 0x0000, 0004 6(最低)
软件中断 管理模式 0x0000, 0008 6(最低)
指令预取终止 终止模式 0x0000, 000C

5

数据终止 终止模式 0x0000, 0010 2
IRQ(外部中断请求) IRQ 0x0000, 0018 4
FIQ(快速中断请求) FIQ 0x0000, 001C 3

三、ARM基本指令及功能描述

ARM基本指令

助记符

指令功能描述

ADC

带进位加法指令

ADD

加法指令

AND

逻辑与指令

B

跳转指令

BIC

位清零指令

BL

带返回的跳转指令

BLX

带返回和状态切换的跳转指令

BX

带状态切换的跳转指令

CDP

协处理器数据操作指令

CMN

比较反值指令

CMP

比较指令

EOR

异或指令

LDC

存储器到协处理器的数据传输指令

LDM

加载多个寄存器指令

LDR

存储器到寄存器的数据传输指令

MCR

从 ARM 寄存器到协处理器寄存器的数据传输指令

MLA

乘加运算指令

MOV

数据传送指令

MRC

从协处理器寄存器到 ARM 寄存器的数据传输指令

MRS

传送 CPSR 或 SPSR 的内容到通用寄存器指令

MSR

传送通用寄存器到 CPSR 或 SPSR 的指令

MUL

32 位乘法指令

MLA

32 位乘加指令

MVN

数据取反传送指令

ORR

逻辑或指令

RSB

逆向减法指令

RSC

带借位的逆向减法指令

SBC

带借位减法指令

STC

协处理器寄存器写入存储器指令

STM

批量内存字写入指令

STR

寄存器到存储器的数据传输指令

SUB

减法指令

SWI

软件中断指令

SWP

交换指令

TEQ

相等测试指令

TST

位测试指令

猜你喜欢

转载自blog.csdn.net/Viewinfinitely/article/details/110919092