⑴ 单片机里的cjne djnz分别是什么意思
cjne的意思是Compare Jump Not Equal 比较不相等转移指令。
参与比较的两个数,若不相等,则转移,若相等则程序顺序执行;利用这条指令,就可以判断两数是否相等。
djnz的意思是减一不为零转移指令。
djnz指令是将操作数的内容减1,然后判断操作数的结果,若操作数为零,则顺序执行程序,不为零则程序转移。根据DJNZ指令的功能:每执行一次DJNZ RO, IDATALOOP就将R0的值减1,若R0的值不为0则就跳到IDATALOOP地址去。
(1)双字节和单片机的区别扩展阅读
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字节单元地址。
⑵ 姹傚崟鐗囨満缂栧啓鍙屽瓧鑺傛棤绗﹀彿鏁板姞娉曞瓙绋嫔簭銆傛潵涓楂樻坠钖э紒
鍢垮樋
1 璁捐′竴涓鍙屽瓧鑺傛棤绗﹀彿鏁板姞娉曞瓙绋嫔簭锛岄栧厛瑕佽捐′竴涓瀛愮▼搴忓叆鍙o细
鍗 锛圧2)(R3)=瑁呭弻瀛楄妭镞犵﹀彿鏁扮殑琚锷犳暟
锛圧4)(R5)=瑁呭弻瀛楄妭镞犵﹀彿鏁扮殑锷犳暟
2 璁捐′竴涓鍙屽瓧鑺傛棤绗﹀彿鏁板姞娉曞瓙绋嫔簭鍑哄彛锛
( 32H )( 31H )( 30H)=瑁呭拰
3 鍒╃敤锷犳硶鎸囦护 姹傚弻瀛楄妭镞犵﹀彿鏁扮殑鍜屻
4 璧蜂竴涓瀛愮▼搴忓悕锛
ADD16锛 MOV A,R3 ;鍙栦绠瀛楄妭琚锷犳暟
ADD A,R5 锛涗笌浣庡瓧鑺傚姞鏁扮浉锷
MOV 30H,A 锛涗绠瀛楄妭鍜岄30H 鍗曞厓
MOV A,R2 锛涘彇楂桦瓧鑺傝锷犳暟
ADDC A,R4 锛涗笌楂桦瓧鑺傚姞鏁扮浉锷
MOV 31H,A 锛涢珮瀛楄妭鍜岄31H鍗曞厓
CLR A 锛涙竻闆
ADDC A,#0 锛涘姞涓婅繘浣
MOV 32H,A 锛涙湁杩涗綅鍒欓32H鍗曞厓淇濆瓨
RET 锛涘瓙绋嫔簭杩斿洖
婊℃剰 灏辩粰淇哄姞鍒嗗柦
⑶ 单片机里DJNZ代表什么啊
单片机里DJNZ代表单片指令。
DJNZ RN,REL 是一条件转移指令,先将工作寄存器Rn中的数减“1”,判断结果是否为“0”,不为“0”程序就跳转到行标为REL的地方执行,否则,为“0”就不转移,继续执行下一条指令。
DJNZ指令有两种格式:DJNZ Rn,rel和DJNZ direct,rel。
前者为双字节指令,其中第二个字节存储rel的相对地址,范围是-128~+127,所以转移范围很窄,所以转移的位置为指令的当前PC值加上rel;
第二条指令的第三个字节也是存储rel的,和第一条指令的转移方式相同,都是PC+rel
需要注意的是,每执行一次DJNZ指令时,工作寄存器中的数会先减去1后,再判断是否返回。例如,如果Rn中原来是2,则执行两次DJNZ后,Rn中就是0了。DJNZ运行的机器周期为二。
(3)双字节和单片机的区别扩展阅读:
发展历史
单片机(Microcontrollers)诞生于1971年,经历了SCM、MCU、SoC三大阶段,早期的SCM单片机都是8位或4位的。其中最成功的是INTEL的8051,此后在8051上发展出了MCS51系列MCU系统。
基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。
90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。
而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。高端的32位Soc单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。
当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。
⑷ 汇编语言 怎么辨别单字节指令 双字节指令 三字节指令
汇编语言是根据指令的类别和完成的功能来识别指令的单双还是三字节指令的,比如:
INC A;累加器加1,不会与任何其他操作数发生关系,所以是单字节指令。
SJMP TTT;短转移,因为TTT在正负127之内,不会超过一个字节,所以是双字节指令。
LJMP TTT;长转移,因为地址为十六位,所以是三字节指令。