应对微腐败挑战。来自对MIPS的一点经验,我仍然在弄清楚msp430的一些东西。
指令集摘要对于cmp.b指令没有特别的描述性条目,但是我可以看到它在这里与jne指令结合使用。 jne说明:如果重置了零位,则跳转到Label。
455a: f290 8500 1024 cmp.b #0x85, &0x2410
4560: 0720 jne #0x4570 <login+0x50>
因此,cmp.b会将0x85立即数的字节(如后缀.b所示)与地址0x2410中存储的任何字节值进行比较,但是我只能想象这会在保留的某些寄存器中设置一个位让jne指令(上述零位)进行检查,以便知道是否应该执行跳转?如果是这样的话,那是哪个寄存器?
答案 0 :(得分:3)
用户指南说:
说明
从目标操作数中减去源操作数。这是通过完成 将源操作数的1s补码加1。两个操作数不是 影响并且结果不存储;仅状态位受影响。状态位
N:如果结果为负,则设置,如果结果为正,则重置(src≥dst)
Z:如果结果为零则设置,否则复位(src = dst)
C:如果结果的最高位有进位,则设置,否则重置
V:如果发生算术溢出则设置,否则重置
状态位存储在状态寄存器中,状态寄存器称为SR
或R2
(如果需要访问它,在这里不是这种情况)。
JNE
的意思是“如果不相等则跳转”,因此所有这些细节对于理解它都无关紧要。
答案 1 :(得分:0)
由于信誉低下,我无法向其他用户评论atm,但是我认为以下有关JNE命令的信息可能对其他用户而言对CL.的评论有用。
JNE / JNZ 是指令,如果未设置零位,则会导致控制器跳转到给定标签。在这种情况下,控制器将跳至#0x4570
这在 slau144j MSP430x2xx系列用户指南p中进行了描述。 59。