加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

ARM指令大全(简单介绍+助记符+条件码)

(2011-03-16 10:46:01)
标签:

杂谈

分类: ARM

一  ARM微处理器的指令的分类与格式
ARM微处理器的指令集是加载/存储型的,也即指令集仅能处理寄存器中的数据,而且处理结果
都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令来完成。
ARM微处理器的指令集可以分为跳转指令、数据处理指令、程序状态寄存器(PSR)处理指令、
加载/存储指令、协处理器指令和异常产生指令六大类,具体的指令及功能如表3-1所示(表中指令
为基本ARM指令,不包括派生的ARM指令)。

 

助记符  指令功能描述


ADC  带进位加法指令
ADD  加法指令
AND  逻辑与指令
      跳转指令
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状态时,几乎所有的指令均根据CPSR中条件码的状态和指令的条件域有
条件的执行。当指令的执行条件满足时,指令被执行,否则指令被忽略。
每一条ARM指令包含4位的条件码,位于指令的最高4位[31:28]。条件码共有16种,每种条件码
可用两个字符表示,这两个字符可以添加在指令助记符的后面和指令同时使用。例如,跳转指令B
可以加上后缀EQ变为BEQ表示“相等则跳转”,即当CPSR中的Z标志置位时发生跳转。
在16种条件标志码中,只有15种可以使用,如表3-2所示,第16种(1111)为系统保留,暂时不
能使用。

  指令的条件码
条件码  助记符后缀  标 志  含 义
0000  EQ  Z置位  相等
0001  NE  Z清零  不相等
0010  CS  C置位  无符号数大于或等于
0011  CC  C清零  无符号数小于
0100  MI  N置位  负数
0101  PL  N清零  正数或零
0110  VS  V置位  溢出
0111  VC  V清零  未溢出
1000  HI  C置位Z清零  无符号数大于
1001  LS  C清零Z置位  无符号数小于或等于
1010  GE  N等于V  带符号数大于或等于
1011  LT  N不等于V  带符号数小于
1100  GT  Z清零且(N等于V)  带符号数大于
1101  LE  Z置位或(N不等于V)  带符号数小于或等于
1110  AL  忽略  无条件执行

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有