TI中文支持网
TI专业的中文技术问题搜集分享网站

CLA的MBCNDD应用

我在这想问下,MBCNDD指令之前没有比较指令的话,它是根据谁的值进行判断跳转的呢?

MMOV32 MR0,@_ClatoCpuVar.ADV
MMOVZ16 MR1,@_AdcMirror.ADCRESULT0
MMOVZ16 MR3,@_CputoClaVar.RJF
MBCNDD LOOP,NEQ————这条指令根据谁的值(MRO/MR1/MR3还是其它的)判断是否为0,进行跳转到LOOP呢?
….. 还是不执行这条件指令执行按顺序向下执行 MNOP
LOOP:

user3900194:

是不是应该以 MR3的值,进行判断吧,如果MR3不等于就跳转,等于0就不跳转,是这样吗?

我在这想问下,MBCNDD指令之前没有比较指令的话,它是根据谁的值进行判断跳转的呢?

MMOV32 MR0,@_ClatoCpuVar.ADV
MMOVZ16 MR1,@_AdcMirror.ADCRESULT0
MMOVZ16 MR3,@_CputoClaVar.RJF
MBCNDD LOOP,NEQ————这条指令根据谁的值(MRO/MR1/MR3还是其它的)判断是否为0,进行跳转到LOOP呢?
….. 还是不执行这条件指令执行按顺序向下执行 MNOP
LOOP:

Hank Zhao:

回复 user3900194:

是的,你的理解是正确的,MR3不等于0就跳转,等于0就不跳转.

我在这想问下,MBCNDD指令之前没有比较指令的话,它是根据谁的值进行判断跳转的呢?

MMOV32 MR0,@_ClatoCpuVar.ADV
MMOVZ16 MR1,@_AdcMirror.ADCRESULT0
MMOVZ16 MR3,@_CputoClaVar.RJF
MBCNDD LOOP,NEQ————这条指令根据谁的值(MRO/MR1/MR3还是其它的)判断是否为0,进行跳转到LOOP呢?
….. 还是不执行这条件指令执行按顺序向下执行 MNOP
LOOP:

user3900194:

回复 Hank Zhao:

谢谢,但是我在MMOVZ16 MR3,@_CputoClaVar.RJF下一条指令又加了MMOVXI MR3,#0x00;为何现在是否跳转还和不加MMOVXI MR3,#0x00时一样呢?在这_CputoClaVar.RJF=5391,按照程序的分析,现在MR3等于0,现在应该不跳转啊,但是在单步调试时竟然跳转了,这是为何?

MMOV32 MR0,@_ClatoCpuVar.ADVMMOVZ16 MR1,@_AdcMirror.ADCRESULT0MMOVZ16 MR3,@_CputoClaVar.RJF

MMOVXI MR3,#0x00;

MBCNDD LOOP,NEQ————….. MNOPLOOP:

我在这想问下,MBCNDD指令之前没有比较指令的话,它是根据谁的值进行判断跳转的呢?

MMOV32 MR0,@_ClatoCpuVar.ADV
MMOVZ16 MR1,@_AdcMirror.ADCRESULT0
MMOVZ16 MR3,@_CputoClaVar.RJF
MBCNDD LOOP,NEQ————这条指令根据谁的值(MRO/MR1/MR3还是其它的)判断是否为0,进行跳转到LOOP呢?
….. 还是不执行这条件指令执行按顺序向下执行 MNOP
LOOP:

Hank Zhao:

回复 user3900194:

MMOVZ16 MR3,@_CputoClaVar.RJF指令会跟句MR3的值来修改MSTF寄存器的值,但MMOVXI MR3,#0x00指令的结果对MSTF寄存器无影响,所以这是正常的。

我在这想问下,MBCNDD指令之前没有比较指令的话,它是根据谁的值进行判断跳转的呢?

MMOV32 MR0,@_ClatoCpuVar.ADV
MMOVZ16 MR1,@_AdcMirror.ADCRESULT0
MMOVZ16 MR3,@_CputoClaVar.RJF
MBCNDD LOOP,NEQ————这条指令根据谁的值(MRO/MR1/MR3还是其它的)判断是否为0,进行跳转到LOOP呢?
….. 还是不执行这条件指令执行按顺序向下执行 MNOP
LOOP:

user3900194:

回复 Hank Zhao:

我还是不太明白,怎么判断MSTF寄存器的是否改变呢,都同时对MR3赋值,MMOVZ16 MR3,@_CputoClaVar.RJF能够改变MSTF寄存器的值,但MMOVXI MR3,#0x00指令的结果对MSTF寄存器无影响,这是为何呢,麻烦您再给我指点一下,谢谢!

我在这想问下,MBCNDD指令之前没有比较指令的话,它是根据谁的值进行判断跳转的呢?

MMOV32 MR0,@_ClatoCpuVar.ADV
MMOVZ16 MR1,@_AdcMirror.ADCRESULT0
MMOVZ16 MR3,@_CputoClaVar.RJF
MBCNDD LOOP,NEQ————这条指令根据谁的值(MRO/MR1/MR3还是其它的)判断是否为0,进行跳转到LOOP呢?
….. 还是不执行这条件指令执行按顺序向下执行 MNOP
LOOP:

user3900194:

回复 Hank Zhao:

这个程序中LOOP一下还有好多语句,我在单步调试时,问题,MBCNDD的跳转指令根据什么呢,为何这次跳转,等下次运行到这时又不跳转,一直重复,难道和LOOP以下的语句有关,和MMOVXI MR0,#0x29;以及MMOVXI MR3,#0x00;无关?跳不跳转最终看MSTF寄存器的值?

MMOVXI MR0,#0x29; MMOVXI MR3,#0x00; MNOP MNOP MNOP MBCNDD LOOP,NEQ—问题,此处的跳转指令根据什么呢,为何这次跳转,等下次运行到这时又不跳转,一直重复,难道和LOOP以下的语句有关? MNOP MNOP MNOP MCMPF32 MR0,#15.0 MNOP MNOP MNOPLOOP:………………………………………

我在这想问下,MBCNDD指令之前没有比较指令的话,它是根据谁的值进行判断跳转的呢?

MMOV32 MR0,@_ClatoCpuVar.ADV
MMOVZ16 MR1,@_AdcMirror.ADCRESULT0
MMOVZ16 MR3,@_CputoClaVar.RJF
MBCNDD LOOP,NEQ————这条指令根据谁的值(MRO/MR1/MR3还是其它的)判断是否为0,进行跳转到LOOP呢?
….. 还是不执行这条件指令执行按顺序向下执行 MNOP
LOOP:

Hank Zhao:

回复 user3900194:

MSTF寄存器是否被某一条指令修改是由该指令的功能决定的,在CLA user guide的每条指令的解释上会有说明。

我在这想问下,MBCNDD指令之前没有比较指令的话,它是根据谁的值进行判断跳转的呢?

MMOV32 MR0,@_ClatoCpuVar.ADV
MMOVZ16 MR1,@_AdcMirror.ADCRESULT0
MMOVZ16 MR3,@_CputoClaVar.RJF
MBCNDD LOOP,NEQ————这条指令根据谁的值(MRO/MR1/MR3还是其它的)判断是否为0,进行跳转到LOOP呢?
….. 还是不执行这条件指令执行按顺序向下执行 MNOP
LOOP:

Hank Zhao:

回复 user3900194:

这要看在loop的过程中CNDF状态有没有发生变化,如果发生变化的话,可能就会出现这次跳转,下次不跳转的情况。

我在这想问下,MBCNDD指令之前没有比较指令的话,它是根据谁的值进行判断跳转的呢?

MMOV32 MR0,@_ClatoCpuVar.ADV
MMOVZ16 MR1,@_AdcMirror.ADCRESULT0
MMOVZ16 MR3,@_CputoClaVar.RJF
MBCNDD LOOP,NEQ————这条指令根据谁的值(MRO/MR1/MR3还是其它的)判断是否为0,进行跳转到LOOP呢?
….. 还是不执行这条件指令执行按顺序向下执行 MNOP
LOOP:

user3900194:

回复 Hank Zhao:

谢谢您的耐心解答,我明白了许多

我在这想问下,MBCNDD指令之前没有比较指令的话,它是根据谁的值进行判断跳转的呢?

MMOV32 MR0,@_ClatoCpuVar.ADV
MMOVZ16 MR1,@_AdcMirror.ADCRESULT0
MMOVZ16 MR3,@_CputoClaVar.RJF
MBCNDD LOOP,NEQ————这条指令根据谁的值(MRO/MR1/MR3还是其它的)判断是否为0,进行跳转到LOOP呢?
….. 还是不执行这条件指令执行按顺序向下执行 MNOP
LOOP:

user3900194:

回复 Hank Zhao:

具体MBCNDD LOOP是不跳转,应该不是根据MR3的值吧,应该是根据MBCNDD LOOP之前的三个MNOP时间的值?

赞(0)
未经允许不得转载:TI中文支持网 » CLA的MBCNDD应用
分享到: 更多 (0)