ARM处理器基本指令大全
Posted mb62e7593c01ba5
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 | 位测试指令 |
以上是关于ARM处理器基本指令大全的主要内容,如果未能解决你的问题,请参考以下文章