4 ARM微微控制器的指令集
书籍下载地址(复制到下载工具进行下载):
https://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part1.rar
https://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part2.rar
注:书籍内容会不定期进行更新!
4.1 ARM微微控制器的指令的分类与格式
ARM微微控制器的指令集是加载/存储型的,也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令来完成,每个指令都有相对应的机器码。
ARM微微控制器的指令集可以分为跳转指令、数据处理指令、程序状态寄存器(PSR)处理指令、加载/存储指令、协微控制器指令和异常产生指令六大类,具体的指令及功能如下表所示(表中指令为基本ARM指令,不包括派生的ARM指令)。
表4.1-1 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 |
位测试指令 |