您当前的位置:五五电子网电子知识单片机-工控设备ARM单片机ARM 指令格式和时序(1) 正文
ARM 指令格式和时序(1)

ARM 指令格式和时序(1)

点击数:7507 次   录入时间:03-04 11:58:51   整理:http://www.55dianzi.com   ARM单片机

 


--------------------------------------------------------------------------------

指令
每个 ARM 指令都是 32 位宽,下面给出详细的解释。对于每个指令类,我们给出指令位图(bitmap),和典型汇编器使用的语法的例子。

一定要注意助记符的语法不是固定的;它是汇编器的特性,而不是 ARM 机器编码的。


条件代码
每个指令的顶端部分是一个条件代码,所以可以有条件的运行每个单一的 ARM 指令。

 

条件
指令位图 编号 条件代码 所须标志:

0000xxxx xxxxxxxx xxxxxxxx xxxxxxxx 0 EQ(等于,Equal) Z
0001xxxx xxxxxxxx xxxxxxxx xxxxxxxx 1 NE(不等于,Not Equal) ~Z
0010xxxx xxxxxxxx xxxxxxxx xxxxxxxx 2 CS(进位设置,Carry Set) C
0011xxxx xxxxxxxx xxxxxxxx xxxxxxxx 3 CC(进位清除,Carry Clear) ~C

0100xxxx xxxxxxxx xxxxxxxx xxxxxxxx 4 MI(负号,MInus) N
0101xxxx xxxxxxxx xxxxxxxx xxxxxxxx 5 PL(正号,PLus) ~N
0110xxxx xxxxxxxx xxxxxxxx xxxxxxxx 6 VS(溢出设置,oVerflow Set) V
0111xxxx xxxxxxxx xxxxxxxx xxxxxxxx 7 VC(溢出清除,oVerflow Clear) ~V

1000xxxx xxxxxxxx xxxxxxxx xxxxxxxx 8 HI(高于,HIgher) C and ~Z
1001xxxx xxxxxxxx xxxxxxxx xxxxxxxx 9 LS(低于或同于,Lower or Same) ~C and Z
1010xxxx xxxxxxxx xxxxxxxx xxxxxxxx A GE(大于等于,Greater or equal)N = V
1011xxxx xxxxxxxx xxxxxxxx xxxxxxxx B LT(小于,Less Than) N = ~V

1100xxxx xxxxxxxx xxxxxxxx xxxxxxxx C GT(大于,Greater Than) (N = V) and ~Z
1101xxxx xxxxxxxx xxxxxxxx xxxxxxxx D LE(小于等于,Less or equal) (N = ~V) or Z
1110xxxx xxxxxxxx xxxxxxxx xxxxxxxx E AL(总是,Always) 永真
1111xxxx xxxxxxxx xxxxxxxx xxxxxxxx F NV(从不,Never) 永假

在多数汇编器中,插入条件代码到紧随在助记符根代码(stub)的后面;省略条件代码缺省为使用 AL。

在一些汇编器中把 HS (高于或同于) 和 LO (低于) 分别用做 CS 和 CC 的同义词。

条件 GT、GE、LT、LE 被成为有符号比较,而 HS、HI、LS、LO 被称为无符号比较。

把一个条件代码与 1 进行异或得到相反的条件的代码。

NB: ARM 废弃使用 NV 条件代码 - 假定你使用 MOV R0,R0 作为一个空指令而不是以前推荐的 MOVNV R0,R0 。将来的处理器可能重新使用 NV 条件来做其他事情。

所须条件为假的指令执行 1S 周期,使一个指令有条件执行不招致时间处罚。


数据处理指令
xxxx000a aaaSnnnn ddddcccc ctttmmmm 寄存器形式
xxxx001a aaaSnnnn ddddrrrr bbbbbbbb 立即数形式

典型的汇编语法:

MOV Rd, #0
ADDEQS Rd, Rn, Rm, ASL Rc
ANDEQ Rd, Rn, Rm
TEQP Pn, #&80000000
CMP Rn, Rm

在操作 a 下,组合 Rn 的内容和 Op2,放置结果到 Rd 中。



上一页  [1] [2] 


本文关键字:暂无联系方式ARM单片机单片机-工控设备 - ARM单片机