洛翼mwk

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

S是能够更改C位等其他控制位

C是加上C位上的数字

MOV:

  MOV R0,R1

  MOV R0,R1,#LSL3 R0 = R1 * 8

      MOV R0,R1,#3    R0 = R1+3

      MOV PC,LR(R14) 退出到调用者

  MOVS PC,LR(R14) 退出到调用者并恢复标志者

MVN

  MVN R0,#4 R0=-5  反码

AND

  AND R0,R0,#3 R0 = R0 & 3

EOR  异或

  EOR R0,R0,#3   反转R0中的位0 和 1

  EOR R2,R1,R0   R2=R1 异或 R0

SUB

  SUB R0,R1,R2  R0=R1-R2

  SUB R0,R1,#256 R0=R1-256

  SUB R0,R1,R3,LSL#1 R0=R1-(R3<<1)

RSB

  RSB R0,R1,R2 R0=R2-R1

  RSB R0,R1,#3 R0=3-R1

ADD

     ADD R0,R1,R2 R0=R1+R2

TST 测试,根据逻辑与的结果更新标志位

  TST R0,#%1 R0中是否设置了位0

TEQ  测试,根据逻辑异或的结果更新标志位

  TEQ R0,R1  比较R0和R1是否相等,不看V位和C位

CMP  测试,根据Rn-op2的结果更新标志位

  CMP R1,R2

  CMP R1,R2

CMN  测试,根据op2+Rn的结果更新标志位

  CMN R1,R2

  CMN R1,R2

ORR 逻辑或操作

  ORR R0,R1,#3

BIC 位清除指令

  BIC R1,R2,R3 将R3的反码和R2逻辑与

MUL 乘

  MUL R1,R2,R3 R1=R3*r2

UMULL 无符号位长乘

  UMULL <RdLo>,<RdHi>,<Rm>,<Rs>  RdLo表示的是最低有效32位,RdHi表示的是最高有效32位

  UMULL R0,R1,R3,R4   (R1,R0)=R3*R4

SMULL 有符号位长乘

 

MLA  乘累加

  MLA R1,R2,R3,R0    R1=R2*R3+R0

UMLAL,SMLAL同上 

SMLAL R2,R3,R4,R5 (R3,R2)=R4*R5+(R3,R2)

  

posted on 2016-07-22 14:25  洛翼mwk  阅读(218)  评论(0编辑  收藏  举报