微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM汇编和内嵌汇编

ARM汇编和内嵌汇编

时间:11-20 来源:互联网 点击:

六、CMP

CMP指令的格式为:
CMP{条件} 操作数1,操作数2
CMP指令用于把一个寄存器的内容和另一个寄存器的内容或立即数进行比较,同时更新CPSR中条件标志位的值。该指令进行一次减法运算,但不存储结果,只 更改条件标志位。标志位表示的是操作数1与操作数2的关系(大、小、相等),例如,当操作数1大于操作操作数2,则此后的有GT 后缀的指令将可以执行。
指令示例:
CMP R1,R0 ;将寄存器R1的值与寄存器R0的值相减,并根据结果设置CPSR的标志位
CMP R1,#100 ;将寄存器R1的值与立即数100相减,并根据结果设置CPSR的标志位

cmp r0, #0
beq 1f ; 如果r0==0那么向前跳转到B处执行
bne 1b ; 否则向后跳转到A处执行1: ;
1b,1f里的b和f表示backward和forward,1表示局部标签1

TST R0, #0X8
BNE SuspendUp ;BNE指令是“不相等(或不为0)跳转指令”:

LDR R1,#0x00000000

先进行and运算,如果R0的第四位不为1,则结果为零,则设置zero=1(继续下面的LDR指令);

否则,zero=0(跳到SuspendUp处执行)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top