⑴ 單片機里的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;長轉移,因為地址為十六位,所以是三位元組指令。