ARM汇编指令详解1
结果为0时,EQ位被设置。
TSTR1,#%1
ADD{条件}{S} 目的寄存器,操作数1,操作数2
ADD指令用于把两个操作数相加,并将结果存放到目的寄存器中。操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即数。
ADDR0,R1,R2,LSL#1
SUB{条件}{S} 目的寄存器,操作数1,操作数2
SUB指令用于把操作数1减去操作数2,并将结果存放到目的寄存器中。操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即数。
SUBR0,R2,R3,LSL#1
AND{条件}{S} 目的寄存器,操作数1,操作数2
AND指令用于在两个操作数上进行逻辑与运算,并把结果放置到目的寄存器中。操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即数。该指令常用于屏蔽操作数1的某些位。
ANDR0,R0,#3
ORR{条件}{S} 目的寄存器,操作数1,操作数2
ORR指令用于在两个操作数上进行逻辑或运算,并把结果放置到目的寄存器中。操作数1应是一个寄存器,操作数2应是一个寄存器,被移位寄存器,或一个立即数。该指令常用于设置操作数1的某些位。
ORRR0,R0,#3
BIC{cond}{S} Rd,Rn,operand2
BIC指令用于清除Rn中的某些位,并把结果存放在Rd中,操作数operand2为32位的掩码,如果掩码中设置了某一位为1,则清除这一位。
BICR0,R0,#11
MUL{条件}{S}
MUL指令完成将操作数1与操作数2的乘法运算并把结果放置到目的寄存器中,同时可以根据运算结果设置CPSR中相应的条件标志位。其中,操作数1和操作数2均为32位的有符号数或无符号数。
MUL
MULS
程序状态寄存器访问指令
ARM微处理器支持程序状态寄存器访问指令,用于在程序状态寄存器和通用寄存器之间传送数据。
MRS{条件} 通用寄存器,程序状态寄存器(CPSR或SPSR)
MRS的用处是将状态寄存器中的内容传递到通用寄存器中。
1、当需要修改程序状态寄存器中内容时,可用MRS进程序状态寄存器的内容读入到通用寄存器,修改后再写回程序状态寄存器。
2、当在异常处理或进程切换时,需要保存程序状态寄存器的值,可先用MRS读出程序状态寄存器的值,然后保存。
MRS R0,CPSR
MSR{条件}程序状态寄存器(CPSR或SPSR)_<域>,操作数
MSR指令用于将操作数的内容传递到程序状态寄存器的特定域中。其中,操作时可以是通用寄存器或立即数。<域>用于设置程序状态寄存器中需要操作的位,32位的程序状态寄存器可分为4个域:
位[31:24]为条件标志位域,用f表示;
位[15:8]为扩展位域,用x表示;
MSR CPSR,R0
MSRCPSR_c,R0
ARM汇编指 相关文章:
- ARM汇编指令的一些总结(11-28)
- 常用ARM汇编指令(11-28)
- 第1天-ARM汇编指令ADD/SUB/MUL(11-26)
- 第1天-ARM汇编指令CMP/CMN/TST/TEQ(11-26)
- 第1天-ARM汇编指令B/BL(11-26)
- 第1天-ARM汇编指令MOV/MVN(11-26)