MSP430 cmp.b指令做什么?

时间:2019-04-28 20:45:35

标签: msp430

应对微腐败挑战。来自对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指令(上述零位)进行检查,以便知道是否应该执行跳转?如果是这样的话,那是哪个寄存器?

2 个答案:

答案 0 :(得分:3)

用户指南说:

  

说明
  从目标操作数中减去源操作数。这是通过完成   将源操作数的1s补码加1。两个操作数不是   影响并且结果不存储;仅状态位受影响。

     

状态位
  N:如果结果为负,则设置,如果结果为正,则重置(src≥dst)
  Z:如果结果为零则设置,否则复位(src = dst)
  C:如果结果的最高位有进位,则设置,否则重置
  V:如果发生算术溢出则设置,否则重置

状态位存储在状态寄存器中,状态寄存器称为SRR2(如果需要访问它,在这里不是这种情况)。

JNE的意思是“如果不相等则跳转”,因此所有这些细节对于理解它都无关紧要。

答案 1 :(得分:0)

由于信誉低下,我无法向其他用户评论atm,但是我认为以下有关JNE命令的信息可能对其他用户而言对CL.的评论有用。

JNE / JNZ 是指令,如果未设置零位,则会导致控制器跳转到给定标签。在这种情况下,控制器将跳至#0x4570

这在 slau144j MSP430x2xx系列用户指南p中进行了描述。 59。