微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM汇编指令——TST和BNE、BEQ解析

ARM汇编指令——TST和BNE、BEQ解析

时间:11-21 来源:互联网 点击:
从汇编角度来讲,TST和AND可以说做的是完全相同的运算,只不过TST不保存具体运算结果只判断是否为0。

简单例子:

TST R0, #0x8 ; 测试bit_3是否为0
BNE SuspendUp ; BNE指令是“不相等或不为0跳转指令”:

LDR R1,#0

先进行and运算,如果R0的第四位不为1,则结果为零,此时zero=1,执行下面的LDR指令;

否则,结果为1,zero=0,跳到SuspendUp处执行。

强调:BNE指令是“不相等或不为0则跳转指令”,与TST搭配,应用“不为0则跳转”;

个人总结:tst 和bne连用: 先是用tst进行位与运算,然后将位与的结果与0比较,如果不为0,则跳到bne紧跟着的标记(如bne sleep,则跳到sleep处)。

强调:BEQ指令是“相等或为0则跳转指令”,与TST搭配,应用“为0则跳转”;

tst 和beq连用: 先是用tst进行位与运算,然后将位与的结果与0比较,如果为0,则跳到beq紧跟着的标记(如beq delay,则跳到delay处)。

上一篇:ARM问答
下一篇:ARM 内核SP,LR,PC寄存器

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

网站地图

Top