单片机里的cjne djnz分别是什么意思?

如题所述

第1个回答  2022-12-11

cjne的意思是Compare Jump Not Equal 比较不相等转移指令。

参与比较的两个数,若不相等,则转移,若相等则程序顺序执行;利用这条指令,就可以判断两数是否相等。

djnz的意思是减一不为零转移指令。

djnz指令是将操作数的内容减1,然后判断操作数的结果,若操作数为零,则顺序执行程序,不为零则程序转移。根据DJNZ指令的功能:每执行一次DJNZ RO, IDATALOOP就将R0的值减1,若R0的值不为0则就跳到IDATALOOP地址去。


扩展资料

DJNZ指令有两种格式:DJNZ Rn,rel和DJNZ direct,rel,前者为双字节指令,其中第二个字节存储rel的相对地址,范围是-128~+127,所以转移范围很窄,所以转移的位置为指令的当前PC值加上rel;第二条指令的第三个字节也是存储rel的,和第一条指令的转移方式相同,都是PC+rel。

cjne作用是Rn中的数与data比较,如果Rn=data,顺序执行,否则转移到指定的标号处。由于这是一条3字节指令,程序的转移范围应以(PC)+3为起始地址的+127~-128共256字节单元地址。

参考资料来源:百度百科-CJNE

参考资料来源:百度百科-djnz