版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第3章 AT89C51的指令系統(tǒng),第3章 AT89C51指令系統(tǒng),何為指令?,CPU按照人們的意圖來(lái)完成某種操作的命令。,指令系統(tǒng):一臺(tái)計(jì)算機(jī)的CPU所能執(zhí)行的全部指令的集合。,本章主要內(nèi)容:,一、指令的基本概念及格式介紹,匯編語(yǔ)言指令的書(shū)寫(xiě)格式 標(biāo)號(hào):操作碼 操作數(shù)1,操作數(shù)2,操作數(shù)3 ;注釋 標(biāo)號(hào):用符號(hào)表示的該條指令的首地址,根據(jù)需要設(shè)置。位于一 條指令(語(yǔ)句)的開(kāi)頭,以冒號(hào)結(jié)束。它以英文字母開(kāi)頭,由字母、數(shù)字、下劃線等組成。 操作碼:操作碼規(guī)定指令實(shí)現(xiàn)何種功能(傳送、加)操作。是由助記符表示的字符串,是任一指令不可缺少的部分。 操作數(shù):操作數(shù)可以是被傳送的數(shù)(立即數(shù)),或數(shù)在內(nèi)RAM
2、中的地址,寄存器, 轉(zhuǎn)移的指令地址,。可以采用字母、字符和數(shù)字等多種表示形式。各操作數(shù)之間要用“,” 號(hào)分開(kāi)。 注釋?zhuān)簽楸阌陂喿x而對(duì)指令附加的說(shuō)明語(yǔ)句。必須以分號(hào)“;”開(kāi)始。可以采用字母、數(shù)字和漢字等多種表示形式。,匯編語(yǔ)言常用符號(hào) 指令系統(tǒng)中還使用了一些符號(hào)。這些符號(hào)的含義如下: Rn當(dāng)前選中的工作寄存器組中的8個(gè)寄存器R0R7(n=07) Ri當(dāng)前選中的工作寄存器組中的2個(gè)寄存器R0、R1(i=0,1). direct8位直接地址。 #data8包含在指令中的8位二進(jìn)制數(shù)。 #data16包含在指令中的16位二進(jìn)制數(shù)。 Addr1616位二進(jìn)制地址,用于LCALL、LJMP中 Addr11
3、用于ACALL和AJMP指令中。 rel在相關(guān)的匯編語(yǔ)言指令中講解它的意義。 DPTR數(shù)據(jù)指針,可用作16位二進(jìn)制的地址寄存器。,匯編語(yǔ)言常用符號(hào) bit位,內(nèi)部RAM(包括特殊功能寄存器)中的可尋址位。 A累加器。 B特殊功能寄存器,常用于乘除法指令MUL和DIV中。 C進(jìn)位標(biāo)志或進(jìn)位位,或位處理器中的累加器。也可用Cy表示。 間址寄存器或基址寄存器的前綴,如 Ri,DPTR 。 / 位操作的前綴,表示對(duì)該位操作數(shù)取反,如 / bit 。 () 中的內(nèi)容。 ()中內(nèi)容為地址的其中的內(nèi)容。 用箭頭右邊的內(nèi)容取代箭頭左邊的內(nèi)容。 $ 指本條指令的首地址。,二、偽指令,偽指令:用來(lái)對(duì)匯編過(guò)程進(jìn)行控
4、制,或者對(duì)符號(hào)、標(biāo)號(hào)賦值的指令。這些指令不被翻譯成機(jī)器代碼。,匯編語(yǔ)言中的偽指令及其作用,三、指令尋址方式,尋址、尋址方式、尋址存儲(chǔ)器范圍,尋址就是單片機(jī)CPU尋找指令中參與操作的數(shù)據(jù)的地址 尋址方式是單片機(jī)CPU尋找指令中參與操作的數(shù)據(jù)地址的方法,尋址依據(jù):,說(shuō)明:在沒(méi)有特別強(qiáng)調(diào)的情況下,提到的尋址方式是源操作數(shù)的尋址。,尋址方式種類(lèi)(7種):,四、匯編語(yǔ)言的指令系統(tǒng),按指令功能可把111種指令分為五類(lèi): 數(shù)據(jù)傳送類(lèi)(29種); 算術(shù)操作類(lèi)(24種); 邏輯操作類(lèi)(24種); 控制程序轉(zhuǎn)移類(lèi)(17種); 布爾變量操作類(lèi)(17種),即位操作類(lèi)指令。,1. 數(shù)據(jù)傳送指令,)內(nèi)部RAM數(shù)據(jù)傳送指令
5、 (MOV)(16條) 表3-4列出了內(nèi)部RAM數(shù)據(jù)傳送指令、功能操作、機(jī)器代碼和執(zhí)行機(jī)器周期數(shù)。,(1)、16位傳送,指令: MOV DPTR,#data16,例: MOV DPTR,#1234H ;(DPTR)=1234H,該指令也可以用兩條8位數(shù)據(jù)傳送指令實(shí)現(xiàn): MOV DPH,#12H ;(DPH)=12H MOV DPL,#34H ;(DPL)=34H,(DPTR)=1234H,通用格式: MOV 目的字節(jié), 源字節(jié),(2)、8位傳送,給出每條指令執(zhí)行后的結(jié)果,MOV 23H,#30H MOV 12H,#34H MOV R0,#23H MOV R7,12H MOV R1,#12H M
6、OV A,R0 MOV 34H,R1 MOV 45H,34H MOV DPTR,#6712H MOV 12H,DPH MOV R0,DPL MOV A,R0,;(23H)=30H ;(12H)=34H ;(R0)=23H,;(R7)=34H ;(R1)=12H ;(A)=30H,;(34H)=34H ;(45H)=34H ;(DPTR)=6712H,;(12H)=67H ;(R0)=12H ;(A)=67H,內(nèi)部RAM,小練習(xí):,設(shè)片內(nèi)RAM中(59H)=50H,執(zhí)行下列程序段: MOV A,59H MOV R0,A MOV A,#0 MOV R0,A MOV A,#25H MOV 51H,A
7、 MOV 52H,#70H 問(wèn)A=? (50H)=? (51H)= ? (52H)=?,(A)=50H,(R0)=50H,(A)=00H,(50H)=00H,(A)=25H,(51H)=25H,(52H)=70H,A=25H,(51H)=25H,(52H)=70H,(50H)=00H,2)外部RAM數(shù)據(jù)傳送指令(MOVX)(4條) 表3-5列出了外部RAM數(shù)據(jù)傳送指令、功能操作、機(jī)器代碼和執(zhí)行機(jī)器周期數(shù),它們都是與外RAM有關(guān)的數(shù)據(jù)傳送指令。 該類(lèi)指令均涉及對(duì)外RAM 64K地址單元操作,而指令MOVX Ri,A MOVX A,Ri中Ri只提供外RAM地址的低8位地址,所以高8位應(yīng)由P2提供。
8、, MOVX A,Ri ;(Ri)(A),i=0、1 MOVX A,DPTR ;(DPTR)(A) MOVX Ri,A ;(A)(Ri),i=0、1 MOVX DPTR,A ;(A)(DPTR),強(qiáng)調(diào),1. 在89C51中,與外部存儲(chǔ)器RAM之間進(jìn)行數(shù)據(jù)傳輸時(shí),必須通過(guò)A累加器。, MOVX A,Ri MOVX A,DPTR MOVX Ri,A MOVX DPTR,A,89C51內(nèi)部RAM間直接可以進(jìn)行數(shù)據(jù)的傳遞。,外部RAM數(shù)據(jù)的傳遞必須通過(guò)A累加器。,比如,要將外部RAM中某一單元(設(shè)為0100H單元的數(shù)據(jù))送入另一個(gè)單元(設(shè)為0200H單元), 必須先將0100H單元中的內(nèi)容讀入A,然后
9、再送到0200H單元中去。,【例】:將外部RAM中100H單元中的內(nèi)容送入外部RAM中200H單元中。,2.要讀或?qū)懲獠康腞AM,必須要知道RAM的地址,地址是被直接放 在DPTR中的或者Ri中。 使用時(shí): 應(yīng)先將要讀或?qū)懙牡刂匪腿隓PTR或Ri中; 用讀寫(xiě)命令。,MOV DPTR,#0100H MOVX A,DPTR MOV DPTR,#0200H MOVX DPTR,A,3)ROM數(shù)據(jù)傳送指令(查表指令)(MOVC)(2條) 表3-5列出了ROM數(shù)據(jù)傳送指令、功能操作、機(jī)器代碼和執(zhí)行機(jī)器周期數(shù)。均屬變址尋址指令,涉及ROM的尋地址空間均為64K。它們?cè)诔绦蛑卸嘤糜诓閿?shù)據(jù)表,故又稱(chēng)查表指令。
10、 一般,A中內(nèi)容稱(chēng)變址,DPTR、PC中內(nèi)容稱(chēng)基地址。, MOVC A,A+DPTR ;(A)+(DPTR)A MOVC A,A+PC ;(PC)+1(PC),(A)+(PC)A,【例】若(DPTR)=3000H,(A)=20H, 執(zhí)行: MOVC A,A+DPTR; 結(jié)果: (A)=((DPTR)+(A)=(3000H+20H)= (3020H),【例】若(PC)=1000H,(A)=20H, 執(zhí)行: MOVC A,A+PC; 結(jié)果: (A)=(PC)+1+(A)=(1001H+20H)= (1021H),內(nèi)RAM(包括特殊功能寄存器)。 用MOV指令傳送 外RAM。用MOVX指令傳送 RO
11、M。用MOVC指令傳送,三個(gè)不同的存儲(chǔ)空間用三種不同的指令傳送:,4)堆棧操作指令(PUSH/POP)(2條) 表3-6列出了堆棧操作指令、功能操作、機(jī)器代碼和執(zhí)行機(jī)器周期數(shù)。,堆棧是什么?,堆棧是在內(nèi)部RAM中按“后進(jìn)先出”的規(guī)則組織的一片存儲(chǔ)區(qū)。,結(jié)構(gòu): 棧底/棧頂/棧指針,要求: 只能是直接尋址、 操作對(duì)象為字節(jié),用途:子程序調(diào)用保護(hù)現(xiàn)場(chǎng)/數(shù)據(jù)交換,指令:, PUSH direct,(SP)+1(SP),(direct)(SP), POP direct,(SP)(direct),(SP)-1(SP),壓入指令,就是將direct中的內(nèi)容送入堆棧中,彈出指令,就是將堆棧中的內(nèi)容送回到dir
12、ect中, PUSH指令使用,先將堆棧指針SP的內(nèi)容 0FH 加1,指向堆棧頂?shù)囊粋€(gè)空單元,此時(shí) SP=10H ;,【例】 : PUSH 30H;(30H)=2BH, (SP)=0FH 具體操作是:, 然后將指令指定的直接尋址單元30H中的數(shù)據(jù)(2BH)送到該空單元中。, POP指令使用,先將SP所指單元0FH(棧頂?shù)刂罚┲械臄?shù)據(jù)(4CH)彈出,送到指定的內(nèi)RAM單元40H,(40H)=4CH;,【例】 : POP 40H ; (SP)=0FH 具體操作是:, 然后SP-1SP,SP=0EH,SP仍指向棧頂?shù)刂?。,結(jié)果:(40H)=4CH, SP=0EH,5)數(shù)據(jù)交換指令(XCH/XCHD/
13、SWAP)(5條) 表3-7列出了數(shù)據(jù)交換指令、功能操作、機(jī)器代碼和執(zhí)行機(jī)器周期數(shù)。, XCH A,Rn ; (A)(Rn),n=07 XCH A,Ri ; (A)(Ri),i=0、1 XCH A,direct ; (A)(direct),SWAP A ; A74A30, 字節(jié)交換指令, 半字節(jié)交換指令,XCHD A,Ri ; A30(Ri)30 高4位不變。i=0、1, 累加器高低四位互換,小練習(xí):,設(shè)(SP)=60H,片內(nèi)RAM的(30H)=24H,(31H)=10H,請(qǐng)?zhí)畛鲎⑨屩械慕Y(jié)果。 PUSH 30H ; (SP)= ,(SP)= . PUSH 31H ; (SP)= ,(SP)=
14、. POP DPL ; (SP)= ,(DPL)= . POP DPH ; (SP)= ,(DPH)= . MOV A,#00H MOVX DPTR,A 最后的執(zhí)行結(jié)果是 。,61H,24H,62H,10H,61H,10H,60H,24H,將00H送入外RAM 2410H單元,(DPTR)=2410H,數(shù)據(jù)傳送指令練習(xí),1、對(duì)程序存儲(chǔ)器的讀操作只能使用( ) A、指令 B、指令 C、指令 D、指令 2、 若用傳送指令訪問(wèn)片內(nèi)RAM,它的操作碼助記符是 ;若用傳送指令訪問(wèn)片外RAM,它的操作碼助記符是 。 3假設(shè)DPTR的內(nèi)容為8100H,A的內(nèi)容為40H,執(zhí)行下類(lèi)指令:MOVC A,A+DPT
15、R后,送入A的是ROM 單元的內(nèi)容。 用簡(jiǎn)單的指令序列完成以下功能: 4、將內(nèi)RAM 30H單元的內(nèi)容傳送到外RAM 3000H單元中。,D,MOV,MOVX,8140H,MOV A,30H MOV DPTR,#3000H MOVX DPTR,A,算術(shù)運(yùn)算類(lèi)指令有24種。包括加減乘除四種基本算術(shù)指令, 能對(duì)8位的無(wú)符號(hào)數(shù)進(jìn)行直接的運(yùn)算。表3-9列出了對(duì)進(jìn)位標(biāo)志位C(也可用Cy表示)、輔助進(jìn)位標(biāo)志位AC、溢出標(biāo)志OV位有影響的所有指令,包括一些非算術(shù)類(lèi)操作的指令。,:表示根據(jù)運(yùn)行結(jié)果使該位置位或復(fù)位。,表3-9 影響標(biāo)志位C、OV、AC的指令,2、算術(shù)運(yùn)算類(lèi)指令,程序狀態(tài)字寄存器PSW各位的意義
16、:,CY,AC,F0,RS1,RS0,OV,P,奇偶位,進(jìn)位位,半進(jìn)位位,用戶(hù)標(biāo)志,工作寄存器 選擇位,溢出位,算術(shù)運(yùn)算?,高位進(jìn)位標(biāo)志位CY,反映:算術(shù)運(yùn)算時(shí),最高位D7向更高位有無(wú)進(jìn)位或借位。,結(jié)論: 若有:(CY) = 1;若無(wú):(CY) = 0 。,舉例:,半進(jìn)位標(biāo)志AC,反映:算術(shù)運(yùn)算時(shí),低半字節(jié)向高半字節(jié)有無(wú)進(jìn)位或借位 。,結(jié)論:若有(AC)= 1;若無(wú)(AC)= 0 。,舉例:,溢出標(biāo)志位OV,反映:運(yùn)算的結(jié)果是否發(fā)生溢出。,結(jié)論:有溢出(OV) = 1;無(wú)溢出(OV )= 0。,8位有符號(hào)數(shù)表示的范圍: 原碼:-127+127 反碼:-127+127 補(bǔ)碼:-128+127 運(yùn)
17、算的結(jié)果超過(guò)此范圍則發(fā)生溢出。,現(xiàn)在大多數(shù)的計(jì)算機(jī)中,如果是無(wú)符號(hào)數(shù),都可以用CY標(biāo)志來(lái)判斷其是否溢出; 而如果是有符號(hào)數(shù),則需要用OV標(biāo)志來(lái)判斷其是否溢出。,舉例:,假定:將D6向D7的進(jìn)位稱(chēng)為C6,將D7向更高位的進(jìn)位稱(chēng)為C7。,當(dāng)進(jìn)行有符號(hào)(signed)數(shù)加減法運(yùn)算時(shí),由硬件自動(dòng)置位或清零。當(dāng)OV=1時(shí),表示一個(gè)數(shù)字已經(jīng)超出了累加器以補(bǔ)碼形式表示一個(gè)有符號(hào)數(shù)的范圍,即超出了-128+127的范圍。,溢出規(guī)律: (OV) = (C7 ) ( C6),CY主要用于無(wú)符號(hào)數(shù)的運(yùn)算,OV主要用于有符號(hào)數(shù)的運(yùn)算。,奇偶標(biāo)志位P,反映:累加器A的內(nèi)容中1的個(gè)數(shù)為偶數(shù)或奇數(shù)。,結(jié)論:偶數(shù)個(gè)1: (P
18、) = 0 奇數(shù)個(gè)1: (P) = 1, ADD A,Rn ; (A)+(Rn)(A)(n=07) 有進(jìn)位,(Cy)=1;無(wú)進(jìn)位,(Cy)=0 ADD A,Ri ;(A)+((Ri))(A)(i=0、1) 有進(jìn)位,(Cy)=1;無(wú)進(jìn)位,(Cy)=0 ADD A,direct ;(A)+(direct)(A) 有進(jìn)位,(Cy)=1;無(wú)進(jìn)位,(Cy)=0 ADD A,#data ; (A)+data(A) 有進(jìn)位,(Cy)=1;無(wú)進(jìn)位,(Cy)=0,1、不帶Cy加法指令(4條),2、 帶Cy加法指令(4條), ADDC A,Rn ;(A)+(Rn)+(Cy)A(n=07) 有進(jìn)位,(Cy)=1;無(wú)
19、進(jìn)位,(Cy)=0 ADDC A,Ri ;(A)+(Ri)+(Cy)A(i=0、1) 有進(jìn)位,Cy=1;無(wú)進(jìn)位,Cy=0 ADDC A,direct ;(A)+(direct)+(Cy)A 有進(jìn)位,Cy=1;無(wú)進(jìn)位,Cy=0 ADDC A,#data ;(A)+data+(Cy)A 有進(jìn)位,Cy=1;無(wú)進(jìn)位,Cy=0, INC A ;(A)+1A INC Rn ;(Rn)+1Rn,n=07 INC Ri ;(Ri)+1(Ri), i=0、1 INC direct ;(direct)+1(direct) INC DPTR ;(DPTR)+1DPTR,3、 加1指令(5條),4、帶借位C減法指令(
20、4條), SUBB A,Rn ; (A)-(Rn)-(Cy)A,(n=07), 有借位,(Cy)=1;無(wú)借位,(Cy)=0 SUBB A,Ri ; (A)-((Ri))-(Cy)A,(n=01), 有借位,(Cy)=1;無(wú)借位,(Cy)=0 SUBB A,direct; (A)-(direct)-(Cy)A, 有借位,(Cy)=1;無(wú)借位,(Cy)=0 SUBB A,#data ; (A)-data-(Cy)A, 有借位,(Cy)=1;無(wú)借位,(Cy)=0,5、 減1指令(4條), DEC A ;A-1A DEC Rn ;Rn-1Rn, n=07 DEC Ri ;(Ri)-1(Ri), i=0
21、、1 DEC direct ;(direct)-1(direct),加1減1指令涉及A時(shí),會(huì)影響P,但不影響其他標(biāo)志位。,6、十進(jìn)制(BCD碼)調(diào)整指令(1條),DA A,功能:對(duì)加法運(yùn)算結(jié)果進(jìn)行BCD碼調(diào)整。,十進(jìn)制調(diào)整: (DA A 1條) 用于兩個(gè)BCD碼之間的相加,這條指令只能跟在 ADD 或 ADDC 之后,BCD碼是什么?,用二進(jìn)制表示的十進(jìn)制數(shù),4個(gè)二進(jìn)制位就可以表示一位BCD碼: 00001001 可表示十進(jìn)制數(shù)(BCD數(shù)) 09; 8個(gè)二進(jìn)制位就可以表示兩位壓縮的BCD碼: 0000000010011001 表示 0099。,DIV AB ;(AB)商A,余數(shù)B (Cy)=0
22、,(OV)=0,7、 乘除法指令(1條 + 1條),MUL AB ; ABBA, ANL A,Rn ;ARnA ANL A,Ri ;A(Ri)A ANL A,#data ;AdataA ANL A,direct ;A(direct)A ANL direct,A ;(direct)Adirect ANL direct,#data;(direct)datadirect,1、邏輯“與”運(yùn)算指令(6條),只有相“與”的兩位都是1,結(jié)果才是1;否則,“與”的結(jié)果為0,3、邏輯運(yùn)算指令,2、 邏輯“或”運(yùn)算指令(6條), ORL A,Rn ;ARnA ORL A,Ri ;A(Ri)A ORL A,#dat
23、a ;AdataA ORL A,direct ;A(direct)A ORL direct,A ;(direct)Adirect ORL direct,#data;(direct)datadirect,只要相“或”的兩位有一位是1,結(jié)果就是1;否則,結(jié)果為0, 邏輯“異或”運(yùn)算指令(6條), XRL A,Rn ;A RnA XRL A,Ri ;A(Ri)A XRL A,#data ;A dataA XRL A,direct ;A(direct)A XRL direct,A ;(direct) Adirect XRL direct,#data;(direct) datadirect,只有相“異或
24、”的兩位不相同,結(jié)果才是1;否則,結(jié)果為0, CLR A ;0A(將累加器A里的內(nèi)容全部變?yōu)?) CPL A ;AA (將累加器A里的內(nèi)容逐位取反), 清零和取反指令(2條),按位取反,原來(lái)是“0”的位變?yōu)椤?”;原來(lái)是“1”的位變?yōu)椤?”,若(A)=A5H,分別執(zhí)行:(1)CLR A; (2) CPL A,5、 循環(huán)移位指令(4條), 循環(huán)左移:RL A, 帶Cy循環(huán)左移:RLC A, 循環(huán)右移:RR A, 帶Cy循環(huán)右移:RRC A,循環(huán)移位指令動(dòng)畫(huà),4、控制轉(zhuǎn)移指令,控制轉(zhuǎn)移類(lèi)指令: 1、無(wú)條件轉(zhuǎn)移; 2、條件轉(zhuǎn)移; 3、調(diào)用與返回; 4、空操作,1、 無(wú)條件轉(zhuǎn)移指令(4條),1)、長(zhǎng)轉(zhuǎn)
25、移指令 LJMP addr16 ; addr150PC,例: LJMP AAAAH,(PC)=AAAAH,2)、絕對(duì)轉(zhuǎn)移指令 AJMP addr11 ; (PC)+2PC PC指向AJMP的下一條指令, addr100PC100, PC1511不變,3)、 相對(duì)轉(zhuǎn)移指令 SJMP rel ;(PC)+2PC, (PC)+relPC 目的地址=源地址+2+rel,說(shuō)明:(1)相對(duì)偏移量 rel,rel 是一個(gè)帶符號(hào)的偏移字節(jié)數(shù)(補(bǔ)碼表示) (00H7FH對(duì)應(yīng)表示0 127,80HFFH對(duì)應(yīng)表示1281); 負(fù)數(shù)表示反向轉(zhuǎn)移,正數(shù)表示正向轉(zhuǎn)移。 (2) rel 可以是一個(gè)轉(zhuǎn)移目標(biāo)地址的標(biāo)號(hào),由匯編
26、程序在匯編過(guò)程中自 動(dòng)計(jì)算偏移地址,并填入指令代碼中。,4)、間接轉(zhuǎn)移指令 JMP A+DPTR ;(A)+(DPTR)PC,轉(zhuǎn)移地址由數(shù)據(jù)指針DPTR的16位數(shù)和累加器A的8位數(shù)進(jìn)行無(wú)符號(hào)數(shù)相加形成,并直接裝入PC。,LJMP、AJMP、SJMP三條無(wú)條件轉(zhuǎn)移指令的區(qū)別:, 轉(zhuǎn)移范圍不一樣。 LJMP轉(zhuǎn)移范圍是64KB; AJMP轉(zhuǎn)移范圍是與當(dāng)前PC值同一2KB; SJMP轉(zhuǎn)移范圍是當(dāng)前PC-128B+127B。 使用AJMP和SJMP指令應(yīng)注意轉(zhuǎn)移目標(biāo)地址是否在轉(zhuǎn)移范圍內(nèi),若超出范圍,程序?qū)⒊鲥e(cuò)。, 指令字節(jié)不一樣。 LJMP是3字節(jié)指令; AJMP、SJMP是2字節(jié)指令。,2、 條件轉(zhuǎn)移
27、指令(13條),條件轉(zhuǎn)移指令根據(jù)判斷條件可分為: 1)、累加器A判零轉(zhuǎn)移 2)、比較條件轉(zhuǎn)移指令 3)、減1非0轉(zhuǎn)移 滿(mǎn)足條件,則轉(zhuǎn)移; 不滿(mǎn)足條件,則程序順序執(zhí)行。,1)、累加器A判零轉(zhuǎn)移(2條),指令的功能: 對(duì)累加器A的內(nèi)容為 0 和不為 0 進(jìn)行檢測(cè)并轉(zhuǎn)移。,判定:當(dāng)不滿(mǎn)足各自的條件時(shí),程序繼續(xù)往下執(zhí)行。 當(dāng)各自的條件滿(mǎn)足時(shí),程序轉(zhuǎn)向指定的目標(biāo)地址。,jump if (not) zero,2)、 比較不相等轉(zhuǎn)移指令(4條),功能:對(duì)指定的目的字節(jié)和源字節(jié)進(jìn)行比較。,判定:若它們的值不相等則轉(zhuǎn)移, 轉(zhuǎn)移的目標(biāo)地址=(當(dāng)前的PC值)+3+(偏移量rel),Compare and Jump
28、if Not Equal,3)、減1非0轉(zhuǎn)移指令(2條),功能:指令每執(zhí)行一次,便將目的操作數(shù)的循環(huán)控制單元的內(nèi)容減1,并判其是否為 0。,判定:若不為0,則轉(zhuǎn)移到目標(biāo)地址繼續(xù)循環(huán); 若為0,則結(jié)束循環(huán),程序往下執(zhí)行。,Decrement and Jump if Not Zero,例 有一段程序如下: MOV 23H,#0AH CLR A LOOPX:ADD A,23H DJNZ 23H,LOOPX SJMP $ 該程序執(zhí)行后, (A)=?,(A)=10+9+8+7+6+5+4+3+2+1=37H,小結(jié):條件轉(zhuǎn)移:(JZ,JNZ,CJNE,DJNZ8條),JZ rel JNZ rel,DJNZ
29、 direct, rel DJNZ Rn, rel,根據(jù)Acc的內(nèi)容是否為0決定是否跳轉(zhuǎn),將direct(或Rn)里的內(nèi)容減 1, 結(jié)果不等于0就跳轉(zhuǎn); 等于0則不跳轉(zhuǎn)繼續(xù)執(zhí)行程序,將A(或Ri,或Rn)與#data(或direct)相比較, 其值不相等就跳轉(zhuǎn); 相等則不跳轉(zhuǎn),繼續(xù)執(zhí)行程序,CJNE A, #data, rel CJNE A, direct, rel CJNE Ri, #data, rel CJNE Rn, #data, rel,3、調(diào)用和返回指令,判定:目標(biāo)地址的形成方式與AJMP和LJMP相似。,功能:可以實(shí)現(xiàn)子程序的短調(diào)用和長(zhǎng)調(diào)用。,1)、調(diào)用指令,返回指令有子程序返回和
30、中斷返回兩種。,2)、返回指令,RET指令的功能:從堆棧中彈出由調(diào)用指令壓入堆棧保護(hù)的斷點(diǎn)地址, 并送入指令計(jì)數(shù)器PC,從而結(jié)束子程序的執(zhí)行。 程序返回到斷點(diǎn)處繼續(xù)執(zhí)行。,RETI指令的功能:專(zhuān)用于中斷服務(wù)程序返回的指令, 除正確返回中斷斷點(diǎn)處執(zhí)行主程序以外, 并有清除內(nèi)部相應(yīng)的中斷狀態(tài)寄存器(以保證正確的中斷邏輯)的功能。,小結(jié):子程序調(diào)用及返回:(LCALL,ACALL,RET,RETI4條),LCALL addr16 子程序長(zhǎng)調(diào)用指令,ACALL addr11 子程序絕對(duì)調(diào)用指令,RET 子程序返回指令,RETI 中斷服務(wù)子程序返回指令,中斷結(jié)束/返回被打斷處的下一條指令,子程序結(jié)束并返回調(diào)用的下一條指令,可在指令所在的2K范圍內(nèi)調(diào)用子程序,可在64K范圍內(nèi)調(diào)用子程序,4、空操作指令(1條),NOP為單機(jī)器周期指令,在時(shí)間上占用一個(gè)機(jī)器周期,常用于時(shí)間“微調(diào)”。 該指令在執(zhí)行時(shí)間上要消耗1個(gè)機(jī)器周期,在存儲(chǔ)空間上可以占用一個(gè)字節(jié)。因此,常用來(lái)實(shí)現(xiàn)較短時(shí)間的延時(shí)。,NOP ;(PC)+1PC,四、位操作指令,位操作: 以位為單位進(jìn)行的各種操作。,位操作指令中,位累加器用字符“C”表示 。,主要有: 位傳送 位狀態(tài)設(shè)置 位邏輯運(yùn)算 位判跳(條件跳轉(zhuǎn)), MOV C,bit ;(bit)Cy
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 水庫(kù)周邊土地利用規(guī)劃
- 2026屆云南省大理市下關(guān)第一中學(xué)生物高一上期末考試試題含解析
- 2026年國(guó)家電投集團(tuán)山西公司招聘?jìng)淇碱}庫(kù)有答案詳解
- 2026年華東師范大學(xué)地緣戰(zhàn)略研究院科研助理招聘?jìng)淇碱}庫(kù)及完整答案詳解1套
- 2026年寧波市鎮(zhèn)海區(qū)龍賽醫(yī)療集團(tuán)公開(kāi)招聘派遣制工作人員備考題庫(kù)完整答案詳解
- 2026年中華聯(lián)合財(cái)產(chǎn)保險(xiǎn)股份有限公司浙江分公司招聘?jìng)淇碱}庫(kù)及參考答案詳解
- 2026年天津人力資源開(kāi)發(fā)服務(wù)有限公司招聘國(guó)有大型銀行派遣制客服代表備考題庫(kù)及1套參考答案詳解
- 2026年中國(guó)人民大學(xué)中共黨史黨建學(xué)院招聘?jìng)淇碱}庫(kù)完整答案詳解
- 2026年中國(guó)(黑龍江)自由貿(mào)易試驗(yàn)區(qū)哈爾濱片區(qū)管理局招聘?jìng)淇碱}庫(kù)完整參考答案詳解
- 2026年南平市醫(yī)療類(lèi)儲(chǔ)備人才引進(jìn)備考題庫(kù)及參考答案詳解1套
- 2025年公司押運(yùn)年終總結(jié)樣本(五篇)
- 2025屆央國(guó)企校招筆試真題及答案
- 2025年新蘇教版七上生物知識(shí)點(diǎn)歸納
- 鋁單板幕墻施工工藝與鋁單板幕墻施工方案
- 2025教育機(jī)構(gòu)全職教師勞動(dòng)合同(示范文本)
- 安全協(xié)議責(zé)任書(shū)模板
- 卵巢顆粒細(xì)胞瘤的診治進(jìn)展2025
- 2025甘肅慶陽(yáng)正寧縣公安局招聘警務(wù)輔助人員40人考試參考試題及答案解析
- 新一代能源管理系統(tǒng)建設(shè)方案
- 小型手持式采茶機(jī)
- 人工智能與終身學(xué)習(xí)體系構(gòu)建研究報(bào)告
評(píng)論
0/150
提交評(píng)論