




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第3章 80C51 單片機指令系統(tǒng)3.1 單片機指令系統(tǒng)概述3.2 80C51 單片機指令尋址方式3.3 80C51 單片機指令分類介紹docin/sundae_meng3.1 單片機指令系統(tǒng)概述指令:規(guī)定計算機基本操作的語句或命令。指 令通常有兩個組成部分:操作碼和操作數(shù)。 操作碼:用于規(guī)定指令進行什么操作。 操作數(shù):指令操作的對象,可以是具體的數(shù)據(jù)、數(shù)據(jù) 的地址或符號。 例如: MOV A,#20H, 指令系統(tǒng):一個單片機所能執(zhí)行的指令集合。 指令系統(tǒng)由單片機生產(chǎn)廠商定義的, 由CPU 的內(nèi)部結(jié)構(gòu)決定的。不同的單片機,其指令 系統(tǒng)不盡相同。docin/sundae_meng80c51指令中
2、使用的符號的意義作簡要說明:Rn(n=07):表示當前工作寄存器R0R7中的任一個寄存 器。Ri:可用作間接尋址的寄存器,只能是R0, R1兩個寄存器, i=0,1。 direct:8位直接地址,在指令中表示直接尋址方式,尋址范圍 256個單元。 #data:8位立即數(shù)。 #data16:16位立即數(shù)。 addr16:表示16位目的地址,主要用于LCALL和LJMP指令 中。 addr11:表示11位目的地址,主要用于ACALL和AJMP指令 中。3.1 單片機指令系統(tǒng)概述docin/sundae_meng rel:相對轉(zhuǎn)移指令中的偏移量,為8位帶符號補碼。 DPTR:數(shù)據(jù)指針。 bit:內(nèi)部
3、RAM(包括專用寄存器)中的直接尋址位。 A: 累加器 ACC:直接尋址方式的累加器。 B: 寄存器B C : 進位標志位。也稱為累加位。 / : 加在位地址的前面,表示對該位狀態(tài)取反。 : 間接尋址寄存器的前綴標志。 (X):某寄存器或某單元中的內(nèi)容。 (X):由“X”間接尋址單元中的內(nèi)容。 : 箭頭左邊的內(nèi)容被箭頭右邊的內(nèi)容所取代。3.1單片機指令系統(tǒng)概述docin/sundae_meng3.2 80C51 單片機指令尋址方式 尋址方式,通常是指某一個CPU指令系統(tǒng)中規(guī)定的尋找操作數(shù)所在地址的方式,或者說通過什么樣的方式找到操作數(shù)。尋址方式的方便與快捷是衡量CPU性能的一個重要方面,MCS
4、51單片機有七種尋址方式。 docin/sundae_meng1. 寄存器尋址方式定義:操作數(shù)在寄存器中,只要指定了寄存器就能得到操作數(shù)。 例: MOV A,R0特點:由指令指出某一個寄存器的內(nèi)容作為操作數(shù)。存 放操作數(shù)的寄存器在指令代碼中不占據(jù)單獨的一 個字節(jié),而是嵌入(隱含)到操作碼字節(jié)中。尋址范圍:四組通用寄存器Rn(R0R7)、部分專用寄存器( A, B, DPTR, Cy )。MOV A,Rn; A(Rn) 其中n為07之一,Rn是工作寄存 器。MOV Rn,A ; Rn(A) MOV B,A ; B(A)3.2 80C51 單片機指令尋址方式docin/sundae_meng2.
5、直接尋址方式定義:指令中操作數(shù)直接以存儲單元地址的形式給出。例如: MOV A , 3AH特點:指令中含有操作數(shù)的地址。該地址指出了參與操 作的數(shù)據(jù)所在的字節(jié)單元地址或位地址。計算機 執(zhí)行它們時便可根據(jù)直接地址找到所需要的操作數(shù)。 只能使用8位二進制數(shù)表示的地址。尋址范圍:片內(nèi)RAM區(qū)(低128字節(jié))、專用寄存器。3.2 80C51 單片機指令尋址方式docin/sundae_meng常見形式:MOV A,52H ;把片內(nèi)RAM字節(jié)地址52H單元的內(nèi)容送累加器A中。MOV 52H,A ;把A的內(nèi)容傳送給片內(nèi)RAM的52H單元中。MOV 50H,60H;把片內(nèi)RAM字節(jié)地址60H單元的內(nèi)容送到5
6、0H單元中。MOV IE,#40H ;把立即數(shù)40H送到中斷允許寄存器 IE。IE為專用功能寄存器,其字節(jié)地址為0A8H。 該指令等價于MOV 0A8H,#40H。INC 60H ;將地址60H單元中的內(nèi)容自加1。3.2 80C51 單片機指令尋址方式docin/sundae_meng直接尋址方式示意圖 3.2 80C51 單片機指令尋址方式docin/sundae_meng3. 寄存器間接尋址方式定義:指令給出的寄存器中存放的是操作數(shù)據(jù)的單元地址。 這種尋址方式稱為寄存器間接尋址。 如:MOV A, R0特點:指令給出的寄存器中存放的是操作數(shù)地址。寄存器間 接尋址是一種二次(間接)尋找操作數(shù)
7、的尋址方式, 寄存器前邊必須加前綴符號“”。不能用于尋址特殊 功能寄存器SFR。3.2 80C51 單片機指令尋址方式docin/sundae_meng例如:MOV A, R0例如:MOV DPTR,#3456H ;DPTR3456H MOVX A,DPTR ;A (DPTR) 寄存器間接尋址方式示意圖 3.2 80C51 單片機指令尋址方式docin/sundae_meng尋址范圍:內(nèi)部RAM低128B(只能使用R0或R1作間址寄存器)外部RAM(使用DPTR作間址寄存器)對于外部低256單元RAM的訪問,除可以使用DPTR外,還可以使用R0或R1作間址寄存器。堆棧操作指令(PUSH 和PO
8、P)為 SP作間址寄存器的間址尋址方式。3.2 80C51 單片機指令尋址方式docin/sundae_meng4. 立即尋址方式定義:將立即參與操作的數(shù)據(jù)直接寫在指令中,這種尋址方式稱為立即尋址。立即數(shù)只能作為源操作數(shù),不能當作目的操作數(shù)。 例如 MOV A , #3AHMOV DPTR, #data16特點:指令中直接含有所需的操作數(shù)。該操作數(shù)可以是8位的,也可以是16位的,常常處在指令的第二字節(jié)和第三字節(jié)的位置上。立即數(shù)通常使用#data或#data16表示,在立即數(shù)前面加“#”標志,用以和直接尋址中的直接地址(direc或bit)相區(qū)別。 3.2 80C51 單片機指令尋址方式doci
9、n/sundae_meng例如: MOV A,#52H ;A52H MOV DPTR,#5678H ;DPTR5678H 立即尋址示意圖 3.2 80C51 單片機指令尋址方式docin/sundae_meng 5. 變址尋址方式 定義:這種尋址方式用于訪問程序存儲器中的數(shù)據(jù)表格, 以基址寄存器(DPTR或PC)的內(nèi)容為基本地址,加 上變址寄存器A的內(nèi)容形成16位的地址,訪問程序 存儲器中的數(shù)據(jù)表格。這種尋址方式稱為基址加變 址寄存器間接尋址,簡稱為變址尋址。 例如:MOVC A, A+DPTR ; A(A)+(DPTR) MOVC A,A + PC JMP DPTR 僅有3條變址尋址指令。3
10、.2 80C51 單片機指令尋址方式docin/sundae_meng 特點:指令操作碼中隱含作為基址寄存器用的DPTR(或PC )和作為變址用的累加器A。在執(zhí)行變址尋址指令時,80c51單片機先把基地址( DPTR或PC 的內(nèi)容)和地址偏移量(A的內(nèi)容)相加,以形成操作數(shù)地址,再由操作數(shù)地址找到操作數(shù),并完成相應的操作。變址尋址方式是單字節(jié)指令。3.2 80C51 單片機指令尋址方式docin/sundae_meng尋址范圍:只能對程序存儲器ROM進行尋址, 主要用于查表性質(zhì)的訪問。3.2 80C51 單片機指令尋址方式docin/sundae_meng 6. 位尋址方式 MCS-51單片機
11、中設有獨立的位處理器。位操作指令能對內(nèi)部RAM中的位尋址區(qū)(20H2FH)和某些有位地址的特殊功能寄存器進行位操作。定義:指令中給出的操作數(shù)是一個可單獨尋址的位地址,這 種尋址方式稱為位尋址方式。 MOV C,3AH特點:位尋址是直接尋址方式的一種,其特點是對8位二進 制數(shù)中的某一位的地址進行操作。例如:SETB TR0 ;TR01 CLR 00H ;(00H)0 MOV C,57H ;將57H位地址的內(nèi)容傳送到C中 ANL C,5FH ;將5FH位與進位位C相與,結(jié)果在C中 3.2 80C51 單片機指令尋址方式docin/sundae_meng尋址范圍:內(nèi)部RAM中的位尋址區(qū) 單元地址為2
12、0H2FH,共16個單元128位,位地址是00H 7FH。 兩種表示方法:一種是位地址;另一種是單元地址加位。專用寄存器的可尋址位(4種表示方法) 直接使用位地址。例如PSW寄存器位5地址為0D5H。 位名稱表示方法。例如PSW寄存器位5是F0標志位,則可使 用F0表示該位。 單元地址加位數(shù)的表示方法。例如PSW寄存器位5,表示為 0D0H.5。 專用寄存器符號加位數(shù)的表示方法。例如PSW寄存器的位5, 表示為PSW.5 3.2 80C51 單片機指令尋址方式docin/sundae_meng7. 相對尋址方式(解決程序轉(zhuǎn)移)定義:將程序計數(shù)器PC的當前值(取出本條指令后的PC值)與指令第二個
13、字節(jié)給出的偏移量(rel)相加,形成新的轉(zhuǎn)移目標地址。稱為相對尋址方式。例如:SJMP rel; (PC)(PC) + 2 + rel特點: 目的地址指令地址指令字節(jié)數(shù)偏移量 相對尋址方式是為實現(xiàn)程序的相對轉(zhuǎn)移而設計的,為相對轉(zhuǎn)移指令所使用,其指令碼中含有相對地址偏移量,能生成浮動代碼。尋址范圍:只能對程序存儲器ROM進行尋址。相對地址偏移量(rel )是一個帶符號的8位二進制補碼,其取值范圍為128127(以PC為中間的256個字節(jié)范圍)。 rel可以是標號。3.2 80C51 單片機指令尋址方式docin/sundae_meng3.3 80C51 單片機指令分類介紹 MCS-51指令系統(tǒng)有
14、42種助記符,代表了33種功能,指令助記符與各種可能的尋址方式相結(jié)合,構(gòu)成80C51單片機的111條指令。這些指令按功能分成5大類:數(shù)據(jù)傳送類(29條)算術運算類(24條)邏輯運算及移位類(24條)控制轉(zhuǎn)移類(17條)位操作類(17條)docin/sundae_meng3.3.1 數(shù)據(jù)傳送類指令 數(shù)據(jù)傳送類指令一般的操作是把源操作數(shù)傳送到指令所指定的目標地址。指令執(zhí)行后,源操作數(shù)保持不變,目的操作數(shù)為原操作數(shù)所替代。 數(shù)據(jù)傳送類指令用到的助記符有:MOV,MOVX,MOVC,XCH,XCHD,PUSH,POP,SWAP。 數(shù)據(jù)一般傳送指令的助記符“MOV”表示: 格式: MOV 目的操作數(shù),源
15、操作數(shù) 功能:目的操作數(shù)(源操作數(shù)中的數(shù)據(jù)) 源操作數(shù)可以是:A、Rn、direct、Ri、#data 目的操作數(shù)可以是:A、Rn、direct、Ri數(shù)據(jù)傳送指令一般不影響標志。3.3 80C51 單片機指令分類介紹docin/sundae_meng1 以累加器為目的操作數(shù)的內(nèi)部數(shù)據(jù)傳送指令 MOVA,Rn;A(Rn)MOVA,direct;A(direct)MOVA,Ri;A(Ri)MOVA,#data;Adata3.3 80C51 單片機指令分類介紹docin/sundae_meng2 數(shù)據(jù)傳送到工作寄存器Rn的指令 MOVRn,A;Rn(A)MOVRn,direct ;Rn(direct
16、)MOVRn,#data;Rndata3.3 80C51 單片機指令分類介紹docin/sundae_meng3數(shù)據(jù)傳送到內(nèi)部RAM單元或特殊功能寄存器SFR的指令 MOVdirect,A;direct(A)MOVdirect,Rn;direct(Rn)MOVdirect1,direct2;direct1(direct2)MOVdirect,Ri;direct(Ri)MOVdirect,#data;direct#dataMOVRi,A;(Ri()MOVRi,direct;(Ri)(direct)MOVRi,#data;(Ri)dataMOVDPTR,#data16;DPTRdata163.3
17、80C51 單片機指令分類介紹docin/sundae_meng 片內(nèi)數(shù)據(jù)RAM及寄存器的數(shù)據(jù)傳送指令MOV、PUSH和POP共18條,如圖所示。3.3 80C51 單片機指令分類介紹docin/sundae_meng例1:若(30H)=35H,(R1)=70H,說明指令 MOV R1,30H 的結(jié)果 解:執(zhí)行后,直接地址70H(即寄存器R1的內(nèi)容)的內(nèi)容為35H,30H與R1的內(nèi)容不變。例2:已知(70H)=60H,(60H)=20H, P1=0B7H, 執(zhí)行下面指令,說明結(jié)果。 MOV R0,#70H; R0-70H MOV A,R0; A-60H MOV R1,A ; R1-60H MO
18、V B,R1; B-20H MOV R0, P1;70H-0B7H 解:結(jié)果是:(70H)=0B7H,(60H)=20H,B=20H ( R1)=60H, (R0)=70H3.3 80C51 單片機指令分類介紹docin/sundae_meng例3 指出下面指令的錯誤: Mov R1, R3 Mov Rn,Ri Mov A,R3解: Mov R1, R3 無寄存器之間直接傳送指令 Mov Rn,Ri,無寄存器間接尋址指令 Mov A,R3 ,間接尋址只能是R1或R03.3 80C51 單片機指令分類介紹docin/sundae_meng 2. 外部數(shù)據(jù)存儲器讀/寫指令(1)Ri作間址寄存器的外
19、部RAM單元讀/寫指令 MOVX A, Ri ( Ri間接尋址的外部RAM單元讀) MOVX Ri , A ( Ri間接尋址的外部RAM單元寫)(2)DPTR作間址寄存器的外部RAM單元讀/寫指令 MOVX A, DPTR ( DPTR間接尋址的外部RAM單元讀) MOVX DPTR , A ( DPTR間接尋址的外部RAM單元寫) 3. 程序存儲器讀指令組(只能讀不能寫,單字節(jié)指令) MOVC A, A+DPTR(程序存儲器讀) MOVC A, A+PC(程序存儲器讀) 注意:讀寫程序存儲器時,只能通過A3.3 80C51 單片機指令分類介紹docin/sundae_meng 片外數(shù)據(jù)存儲器
20、數(shù)據(jù)傳送指令MOVX共4條,如圖: 程序存儲器查表指令MOVC共2條,如圖所示。3.3 80C51 單片機指令分類介紹docin/sundae_meng HBA:INC A MOVC A,A+PC RET DB 30H DB 31H200C DB 39H200D DB 41H200E DB 42H200F DB 43H2019 DB 44H2019 DB 45H2019 DB 46H例:假定A=00H。程序執(zhí)行情況:docin/sundae_meng4. 數(shù)據(jù)交換指令組(1)整字節(jié)交換指令 XCH A,Rn(寄存器尋址字節(jié)交換) XCH A, direct(直接尋址字節(jié)交換) XCH A, R
21、i ( Ri間接尋址字節(jié)交換)(2)半字節(jié)交換指令 XCHD A, Ri ( Ri間接尋址半字節(jié)交換)(3)累加器高低半字節(jié)交換指令 SWAP A (累加器內(nèi)容高低半字節(jié)交換)3.3 80C51 單片機指令分類介紹docin/sundae_meng數(shù)據(jù)交換指令XCH、XCHD、和SWAP共5條,如圖所示?!纠浚≧0)30H,(A)65H,(30H)8FH執(zhí)行指令: XCHA,R0 ; (R0)30H,(A)8FH,(30H)65HXCHD A,R0 ; (R0)30H,(A)6FH,(30H)85HSWAPA ; (A)56H3.3 80C51 單片機指令分類介紹docin/sundae_m
22、eng5. 堆棧操作指令組 PUSH direct(進棧) POP direct(出棧) 例5:設(SP)=30H,ACC=60H,B=70H 執(zhí)行 PUSH ACC PUSH B后的結(jié)果如何? 解: PUSH ACC;(SP)- 31H,(31H)-60H PUSH B;(SP)- 32H, (32H)- 70H 結(jié)果為:(SP)=32H,(31) (32H)=70H3.3 80C51 單片機指令分類介紹docin/sundae_meng 例如:進入中斷服務程序時,把程序狀態(tài)寄存器PSW、累加器A、數(shù)據(jù)指針DPTR進棧保護。設當前SP為60H。 則程序段執(zhí)行后,SP內(nèi)容修改為64H,而61H
23、、62H、63H、64H單元中依次棧入PSW、A、DPL、DPH的內(nèi)容,當中斷服務程序結(jié)束之前,如下程序段(SP保持64H不變) 指令執(zhí)行之后,SP內(nèi)容修改為60H,而64H、63H、62、61H單元的內(nèi)容依次彈出到DPH、DPL、A、PSW中。PUSH PSWPUSH ACCPUSH DPLPUSH DPHPOP DPHPOP DPLPOP ACCPOP PSW3.3 80C51 單片機指令分類介紹docin/sundae_meng3.3.2 算術運算類指令1加法指令 加法指令分為普通加法指令、帶進位加法指令和加1指令。(1)普通加法指令 ADDA,Rn;A(A)+(Rn)ADDA,dire
24、ct;A (A)+(direct)ADDA,Ri; A (A)+ ( Ri)ADDA,#data;A(A)+ data算術運算指令都是按8位二進制無符號數(shù)執(zhí)行的。docin/sundae_meng【例】(A)=85H,R0=20H,(20H)=0AFH,執(zhí)行指令: ADD A,R0 10000101 +10101111 1 00110100結(jié)果:(A)=34H;Cy=1;AC=1;OV=1。 對于加法,溢出只能發(fā)生在兩個加數(shù)符號相同的情況。在進行帶符號數(shù)的加法運算時,溢出標志OV是一個重要的編程標志,利用它可以判斷兩個帶符號數(shù)相加,和數(shù)是否溢出。 3.3.2 算術運算類指令docin/sund
25、ae_meng(2)帶進位加法指令 【例如】(A)=85H,(20H)=0FFH,Cy=1執(zhí)行指令:ADDC A,20H結(jié)果:(A)=85H;Cy=1;AC=1;OV=0。ADDCA,Rn;A(A)+(Rn)+(Cy)ADDCA,direct;A(A)+ (direct)+ (Cy)ADDCA,Ri;A(A)+ (Ri)+ (Cy)ADDCA,#data;A(A)+ data+(Cy)3.3.2 算術運算類指令docin/sundae_meng(3)加1指令【例如】(A)12H,(R3)0FH,(35H)4AH,(R0)56H,(56H)00H 執(zhí)行如下指令: INCA;執(zhí)行后(A)13HIN
26、CR3 ;執(zhí)行后(R3)10HINC35H;執(zhí)行后(35H)4BHINCR0 ;執(zhí)行后(56H)01H INCA;A(A)+1INCRn;Rn (Rn)+1INCdirect;direct (direct)+1INCRi;(Ri)(Ri)+1INCDPTR;DPTR (DPTR)+13.3.2 算術運算類指令docin/sundae_meng(4)十進制調(diào)整指令DA A執(zhí)行該指令時,判斷A中的低4位是否大于9,若滿足大于則低4位做加6操作;同樣,A中的高4位大于9則高4位加6操作。例如:有兩個BCD數(shù)36與45相加,結(jié)果應為BCD碼81,程序如下: MOV A,#36H ADD A,#45H
27、DA A得結(jié)果7BH;第三條指令對累加器A進行十進制調(diào)整,低4位(為0BH)大于9,因此要加6,最后得到調(diào)整的BCD碼81。 3.3.2 算術運算類指令docin/sundae_meng2 減法指令(1)帶借位減法指令 (2)減1指令 SUBBA,Rn;A(A)(Rn)(Cy)SUBBA,direct;A(A)(direct)(Cy)SUBBA,Ri;A(A)(Ri)(Cy)SUBBA,#data;A(A)data(Cy)DECA;A(A)1DECRn;Rn(Rn)1DECdirect;direct(direct)1DECRi;(Ri)(Ri)13.3.2 算術運算類指令docin/sunda
28、e_meng3.乘法指令 乘法指令完成單字節(jié)的乘法,只有一條指令:MUL AB ; AB (A)(B) 【例如】(A)50H,(B)0A0H,執(zhí)行指令: MULAB 結(jié)果:(B)32H,(A)00H(即乘積為3200H), Cy0,OV1。4.除法指令 除法指令完成單字節(jié)的除法,只有一條指令: DIV AB ; A (A)/(B)的商 B (A)/(B)的余數(shù)3.3.2 算術運算類指令docin/sundae_meng說明: MUL指令實現(xiàn)8位無符號數(shù)的乘法操作,兩個乘數(shù)分別放在累加器A和寄存器B中,乘積為16位,低8位放在A中,高8位放在B中; DIV指令實現(xiàn)8位無符號數(shù)除法,被除數(shù)放在A中
29、,除數(shù)放在B中,指令執(zhí)行后,商放在A中而余數(shù)放在B中 。3.3.2 算術運算類指令docin/sundae_meng算術運算類指令包括:ADD、ADDC、SUBB、MUL、DIV、INC、DEC和DA,如圖3.9所示。 圖3.9 算術運算類指令 3.3.2 算術運算類指令docin/sundae_meng 1邏輯與指令 【例如】(A)37H,(R0)0A9H執(zhí)行指令: ANLA,R0 結(jié)果:(A)21H ANLA,Rn;A(A)(Rn)ANLA,direct;A(A)(direct)ANLA,Ri;A(A)(Ri)ANLA,#data;A(A) dataANLdirect,A;direct(d
30、irect)(A)ANLdirect,#data; direct(direct) data3.3.3 邏輯運算及移位類指令docin/sundae_meng2 邏輯或指令 【例如】(A)37H,(P1)09H執(zhí)行指令:ORLP1,A 結(jié)果:(A)3FH ORLA,Rn;A(A)(Rn)ORLA,direct;A(A)(direct)ORLA,Ri;A(A)(Ri)ORLA,#data;A(A) dataORLdirect,A;direct (direct)(A)ORLdirect,#data ;direct (direct) data3.3.3 邏輯運算及移位類指令docin/sundae_m
31、eng3 邏輯異或指令 XRLA,Rn;A(A)(Rn)XRLA,direct;A(A)(direct)XRLA,Ri;A(A)(Ri)XRLA,#data;A(A) dataXRLdirect,A;direct (direct)(A)XRLdirect,#data ;direct (direct)data4 累加器清0和取反指令 CLR A;對累加器A清“0” CPL A;對累加器A按位取反3.3.3 邏輯運算及移位類指令ClearConverse Position Logical docin/sundae_meng 當需要只改變字節(jié)數(shù)據(jù)的個別位而其余位不變時,只能通過邏輯運算完成。應用舉例
32、 將累加器A的低4位傳送到P1口的低4位,但P1口的高4位保持不變。 MOV R0, A ANL A, #0FH ANL P1, #0F0H ORL P1, A MOV A, R03.3.3 邏輯運算及移位類指令docin/sundae_meng5 移位指令 RLA;累加器A的內(nèi)容向左循環(huán)移1位RLCA;累加器A的內(nèi)容帶進位標志向左循環(huán)移1位RRA;累加器A的內(nèi)容向右循環(huán)移1位RRCA;累加器A的內(nèi)容帶進位標志向右循環(huán)移1位3.3.3 邏輯運算及移位類指令Recycle LeftRecycle Left Carrydocin/sundae_meng 循環(huán)左移指令示意圖:RL A循環(huán)右移指令示意
33、圖:RR A帶進位的循環(huán)左移指令示意圖:RLC A帶進位的循環(huán)右移指令示意圖:RRC A3.3.3 邏輯運算及移位類指令docin/sundae_meng3.3.3 邏輯運算及移位類指令圖3.10 邏輯運算類指令 docin/sundae_meng3.3.4 控制轉(zhuǎn)移類指令 1. 無條件轉(zhuǎn)移指令(1)絕對轉(zhuǎn)移指令 AJMP addr11 這是2KB范圍內(nèi)的無條件跳轉(zhuǎn)指令,執(zhí)行該指令時,先將PC+2,然后將addr11送入PC10PC0,而PC15PC11保持不變。 操作過程可表示為:PC(PC)2 PC100addr11(2)短轉(zhuǎn)移指令 SJMP rel 操作過程可表示為: PC(PC)2 P
34、C(PC)rel 執(zhí)行指令時,先將PC+2,再把指令中帶符號的偏移量加到PC上,得到跳轉(zhuǎn)的目的地址送入PC。 目標地址=源地址+2+relAbsolute JumpShort Jumpdocin/sundae_meng(3)長轉(zhuǎn)移指令LJMP addr16 ;PC addr16 執(zhí)行該指令時,將16位目標地址addr16裝入PC,程序無條件轉(zhuǎn)向指定的目標地址。轉(zhuǎn)移指令的目標地址可在64KB程序存儲器地址空間的任何地方,不影響任何標志。(4)變址尋址轉(zhuǎn)移指令(散轉(zhuǎn)指令)JMP A+DPTR;PC (A)(DPTR)2. 條件轉(zhuǎn)移指令(1)累加器判零轉(zhuǎn)移指令 JZrel;(A)=0轉(zhuǎn)移JNZrel
35、;(A)0轉(zhuǎn)移3.3.4 控制轉(zhuǎn)移類指令 Long JumpJumpJump ZeroJump Not Zerodocin/sundae_meng(2)數(shù)值比較轉(zhuǎn)移指令 在MCS-51中沒有專門的比較指令,但提供了下面4條比較不相等轉(zhuǎn)移指令; (3)減1不為0轉(zhuǎn)移指令 DJNZ Rn,rel;R(R)10轉(zhuǎn)移 DJNZ direct,rel ;direct (direct)10轉(zhuǎn)移CJNEA,direct,rel;(A)(direct)轉(zhuǎn)移CJNEA,#data,rel;(A) data轉(zhuǎn)移CJNERn,#data,rel;(Rn) data轉(zhuǎn)移CJNERi,#data,rel;(Ri) da
36、ta轉(zhuǎn)移Decrease Jump Not ZeroCompare Jump Not Equaldocin/sundae_meng圖3.11 條件轉(zhuǎn)移類指令 docin/sundae_meng4. 子程序調(diào)用及返回指令(1)絕對調(diào)用指令 ACALL addr11執(zhí)行該指令時,PC (PC)2SP(SP)1,(SP)(PC)70SP(SP)1,(SP)(PC)158 PC100addr11 (2)長調(diào)用指令 LCALL addr16這條指令無條件調(diào)用位于16位地址addr16的子程序。其操作過程如下: PC (PC)3SP(SP)1,(SP)(PC)70SP(SP)1,(SP)(PC)158 P
37、C150addr16docin/sundae_meng(3)子程序返回指令RET 子程序返回指令是把棧頂相鄰兩個單元的內(nèi)容彈出送到PC,SP的內(nèi)容減2,程序返回PC值所指的指令處執(zhí)行。RET指令通常安排在子程序的末尾,使程序能從子程序返回到主程序。(4)中斷返回指令 RETI 這是指令的功能與RET指令相類似。通常安排在中斷服務程序的最后。 (5)空操作指令 NOP;PC PC1 空操作也是CPU控制指令,它沒有使程序轉(zhuǎn)移的功能。只消耗一個機器周期的時間。常用于程序的等待或時間的延遲。docin/sundae_meng3.3.5 位操作類指令1. 位傳送指令 2 位置位復位指令 SETB C;
38、Cy 1 SETB bit;bit 1 CLR C;Cy 0 CLR bit;bit 0MOVC,bit;Cy(bit)MOVbit,C;bit(Cy)docin/sundae_meng3 位邏輯運算指令ANL C,bit;Cy (Cy)(bit)ANL C,/bit;Cy (Cy)(/bit)ORL C,bit;Cy (Cy)(bit)ORL C,/bit;Cy (Cy)(/bit) CPL C ;Cy ( ) CPL bit ;bit ( )docin/sundae_meng位操作類指令如圖3.12所示。圖3.12 位操作類指令 docin/sundae_meng5 位控制轉(zhuǎn)移指令 JCrel;若(Cy)=1,則轉(zhuǎn)移PC(PC)+2+relJNCrel;若(Cy)=0,則轉(zhuǎn)移PC(PC)+2+relJBbit,rel;若(bit)=1,則轉(zhuǎn)移PC(PC)+3+relJNBbit,rel;若(bit)=0,則
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄭州城市職業(yè)學院《影視攝像基礎》2023-2024學年第二學期期末試卷
- 漯河食品職業(yè)學院《會展項目綜合運營二》2023-2024學年第二學期期末試卷
- 武昌工學院《測試自動化》2023-2024學年第二學期期末試卷
- 沈陽理工大學《酒店財務管理實驗》2023-2024學年第二學期期末試卷
- 中國地質(zhì)大學(北京)《電力電子變流技術》2023-2024學年第二學期期末試卷
- 2025年氣體檢測監(jiān)控系統(tǒng)合作協(xié)議書
- 浙江建設職業(yè)技術學院《畫法幾何及陰影透視》2023-2024學年第二學期期末試卷
- 寧泌泰膠囊項目效益評估報告
- 河南2025年河南鄭州大學第一附屬醫(yī)院招聘819人筆試歷年參考題庫附帶答案詳解
- 大連軟件職業(yè)學院《食品營養(yǎng)》2023-2024學年第二學期期末試卷
- 2025年春季學期學校全面工作安排表
- 光伏施工安全培訓課件
- 消防員證考試題庫2000題中級
- 部編人教版小學4四年級《道德與法治》下冊全冊教案
- 認識負數(shù)(單元測試)青島版五年級下冊數(shù)學
- 公司組織架構(gòu)圖(可編輯模版)
- 秦荻輝科技英語寫作教程練習答案(共42頁)
- GB∕T 41168-2021 食品包裝用塑料與鋁箔蒸煮復合膜、袋
- 部編版語文一年級下冊繪本閱讀課-優(yōu)質(zhì)課件.pptx
- 新人教版九年級全一冊物理知識點填空題匯編
- 人教版五年級數(shù)學下冊每個單元教材分析(共九個單元)
評論
0/150
提交評論