ARM体系结构与编程-指令集及其寻址方式

一、ARM指令的一般编码格式:

ARM指令字长固定为32位:

 

  1、ARM指令的条件码域:

  在ARMv5之前的版本中,所有的指令都是有条件执行的,从ARM v5版本之后,出现了一些无条件执行的指令,

  条件码共有16个,条件码的含义和助记符如下表所示,可条件执行的指令可以在其助记符的扩展域加上条件码

  助记符,从而在特定的条件下执行:

  

二、ARM指令的寻址方式:

  1、立即数方式:

    

 

  由于立即数的构造方法采用了循环移位操作,而循环移位操作会影响CPSR的条件标志位C,因此,同一个合法的立即数由于采用了

  不同的编码方式,将使某些指令的执行产生不同的结果,这是不允许的,ARM汇编编译器按照下面的规则来生成立即数的编码。

  1)、当立即数在0-FF之间,immed_8 = <immediate>, rotate_imm = 0;

  2)、其他情况下,汇编编译器选择使用rotate_imm数字最新的编码方式;

  2、寄存器方式:在寄存器寻址方式下,操作数即为寄存器的数值;

  3、寄存器移位方式,寄存器移位方式的操作为寄存器的数值做相应的移位而得到,具体的移位有如下几种方式:

  

posted @ 2020-04-01 14:24  -Robot-  阅读(650)  评论(0编辑  收藏  举报