ARM指令集为32位指令集,指令地址必须对齐在4字节边界,可以实现ARM架构下所有功能。大多数ARM数据处理指令采用的是3地址格式(除了64位乘法指令外),即两个源操作数和一个结果操作数。 控制比特含义 | 代号 | N(Negative) | 当为负数时,设为1 | Z(Zero) | 当为0时设为1 | C(Carry) | 当结果带进位时设为1 | V(Overflow) | 当结果溢出时设为1 |
ARM指令分为以下几种: 一、ARM 存储器访问指令 助记符 说明 操作 条件码位置 LDR Rd,addressing 加载字数据 Rd←[addressing],addressing 索引 LDR{cond} LDRB Rd,addressing 加载无符字节数据 Rd←[addressing],addressing 索引 LDR{cond}B LDRT Rd,addressing 以用户模式加载字数据 Rd←[addressing],addressing 索引 LDR{cond}T LDRBT Rd,addressing 以用户模式加载无符号字数据 Rd←[addressing],addressing 索引 LDR{cond}BT LDRH Rd,addressing 加载无符半字数据 Rd←[addressing],addressing 索引 LDR{cond}H LDRSB Rd,addressing 加载有符字节数据 Rd←[addressing],addressing 索引 LDR{cond}SB LDRSH Rd,addressing 加载有符半字数据 Rd←[addressing],addressing 索引 LDR{cond}SH STR Rd,addressing 存储字数据 [addressing]←Rd,addressing 索引 STR{cond} STRB Rd,addressing 存储字节数据 [addressing]←Rd,addressing 索引 STR{cond}B STRT Rd,addressing 以用户模式存储字数据 [addressing]←Rd,addressing 索引 STR{cond}T SRTBT Rd,addressing 以用户模式存储字节数据 [addressing]←Rd,addressing 索引 STR{cond}BT STRH Rd,addressing 存储半字数据 [addressing]←Rd,addressing 索引 STR{cond}H LDM{mode} Rn{!},reglist 批量(寄存器)加载 reglist←[Rn…],Rn 回存等 LDM{cond}{more} STM{mode} Rn{!},rtglist 批量(寄存器)存储 [Rn…]← reglist,Rn 回存等 STM{cond}{more} SWP Rd,Rm,Rn 寄存器和存储器字数据交换 Rd←[Rd],[Rn]←[Rm](Rn≠Rd 或 Rm) SWP{cond} SWPB Rd,Rm,Rn 寄存器和存储器字节数据交换 Rd←[Rd],[Rn]←[Rm](Rn≠Rd 或 Rm) SWP{cond}B |