MOV
语法 MOV{条件}{S} 目的寄存器,源操作数
- MOV r0, #0x1 ;将立即数0x1传送到寄存器R0
- MOV R1,R0 ;将寄存器R0的值传送到寄存器R1
- MOV PC,R14 ;将寄存器R14的值传送到PC,常用于子程序返回
- MOV R1,R0,LSL #3 ;将寄存器R0的值左移3位后传送到R1
立即数
立即数是由 0-255之间的数据循环右移偶数位生成
移位
- 逻辑移位(LSL/LSR)空位补0
- 算数移位(ASL/ASR)符号位不变,次高位补符号位
- 循环移位
- 带拓展的循环移位:C标志位进入最高位,最低位进入C标志位
- 移位值也可以是另一个寄存器的低5bit
? 1. LSL(或ASL)逻辑(算术)左移 (ASL与LSL等价) ? 2. LSR逻辑右移 ? 3. ASR算术右移 ? 4. ROR循环右移 ? 5. RRX带扩展的循环右移 MOV R0, R1, LSL #2 ;将R1中的内容左移两位后传送到R0中,低位填0MOV R0, R1, LSR #2 ;将R1中的内容右移两位后传送到R0中,左端填0MOV R0, R1, ASR #2 ;将R1中的内容右移两位后传送到R0中,左端用第31位的值来填充MOV R0, R1, ROR #2 ;将R1中的内容循环右移两位后传送到R0中MOV R0, R1, RRX #2 ;将R1中的内容进行带扩展的循环右移两位后传送到R0中
CMP
减法
TST
按位与 TST R1,#%1
movgt r0,r1 :只有r1>r0的时候,才会执行此操作
数据处理指令
- 加
3. 减 4. 5. 按位与和按位或 6. BIC 7. 64位操作 加,减,清除
跳转(跳转指令未看)
|