数据处理指令

数据处理指令MOVE指令:语法{}{S} Rd,N   MOV  把一个32位数送到一个寄存器          Rd=N   MVN   把一个32位数的非送到一个寄存器      Rd=~N桶形移位寄存器:   ARM的一个显著特性是,可以在操作数进入ALU以前,对操作数进行指定位数的左移或者右移  使用桶形移位寄存器可以

大家好,欢迎来到IT知识分享网。数据处理指令

MOVE指令:语法<指令>{<cond>}{S}   Rd,N

      MOV   把一个32位数送到一个寄存器                     Rd=N

     MVN     把一个32位数的非送到一个寄存器             Rd=~N

桶形移位寄存器:

     ARM的一个显著特性是,可以在操作数进入ALU以前,对操作数进行指定位数的左移或者右移

    使用桶形移位寄存器可以操作5种不同的指令

    LSL    逻辑左移     logical shift left

   LSR   逻辑右移     logical shiift right

   ASR   算数右移    arithmetic

   ROR  循环右移     rotate right 

    RRX  扩展的循环右移

在移位操作中C依据最后一位被移出的数据

算数指令

  指令<cond><S>Rd,Rn,N

ADC 32位带进位加法        Rd=Rn+N+Carry

ADD 32位带加法              Rd=Rn+N

RSB 32位逆向减法          Rd=N-Rn

RSC 带进位的32位逆向减法   Rd=N-Rn-!(C)

SBC 带进位的32位减法        Rd=Rn-N-!C

SUB 32位减法                     Rd=Rn-N

逻辑指令       <指令><cond>Rd,Rn,N

AND 32位逻辑与   Rd=Rn&N

ORR32位逻辑或    Rd=Rn|N

EOR32位逻辑异或 Rd=Rn^N

BIC 逻辑位清除      Rd=Rn&~N

此类指令无需使用S后缀即可改变状态标志位

比较指令        <指令><cond>Rn,N

CMN(compare negative)取负比较 依据Rn+N的值来定

CMP(compare)比较 Rn-N

TEQ(Test Equivalence)等值测试 Rn^N

TST(test bit)位测试 依据Rn&N

乘法指令

MLA<cond><S>Rd,Rm,Rs,Rn  (multiplication with accumulate)乘累加 Rd=(Rm*Rs)+Rn

MUL<cond> <S>Rd, Rm,Rs   乘法 Rd=Rm*Rn

<指令><cond><S>RdL0 RdHi,Rm,Rs

SMLAL 长整型有符号乘累加[RdHi,RdLo]=[RdHi,RdLo]+(Rm*Rs)

SMULL长整型有符号乘 [RdHi,RdLo]=Rm*Rs

UMLAL 长整型无符号乘累加[RdHi,RdLo]=[RdHi,RdLo]+(Rm*Rs)

UMULL长整型无符号乘 [RdHi,RdLo]=Rm*Rs

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/20665.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信