请教关于arm的bne和beq 迷惑啊
以下是网上寻找的:
TST R0, #0X8
BNE SuspendUp ; BNE指令是“不相等(或不为0)跳转指令”:
LDR R1,#0x00000000
先进行and运算,如果R0的第四位不为1,则结果为零,则设置zero=1(继续下面的LDR指令);
否则,zero=0(跳到SuspendUp处执行)
我很迷惑 当R0=0x02的时候 R0和0x08不相等 那不相等,结果为零,接下来应该是执行BNE SuspendUP这个语句才对啊,为什么物品的了解和上面网上的找到的结果相反呢? 而且网上关于这个bne和beq 几乎都是一样的答案?难道是我理解错了?请教各位大侠。。。。。
[解决办法]
不相等,AND结果是0,Z=1,BNE条件不满足,不跳转。。。。
它的NE只是按照标志位的状态,而不是前面指令的寄存器和常数是否相等。