51单片机 汇编语言 JNZ 周期问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 16:18:21
众所周知 JNZ 命令占2个机器周期数;

个人理解 JNZ 执行时分两个步骤
1.判断是否为0(判断占一个周期)
2.如果不为则零跳转 (跳转占一个周期)
所以为两个周期

但是如果JNZ判断为0后不再需要跳转,而是直接执行下面的语句
这种情况JNZ是一个机器周期还是两个机器周期?

51单片机不是流水线预取指令的,所以,不管它的判断的结果是什么,都是两个机器周期.
对于那些精简指令的单片机指令系统,一般都有预取指令的功能,所以不需跳转的时候为一个机器周期,而需要跳转的时候就为二个机器周期,比如PIC,EMC等等.

两个

应该是这样的,在第一个机器周期,S1P1期间取指令,也就是操作码,同周期的下一次读操作码丢失,在第二个周期进行判断做出选择。

还是两个周期,单片机的预取指令决定的

2