已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
教學(xué)目的:熟悉80C51系列單片機的尋址方式及每一種尋址方式對應(yīng)的尋址空間;掌握每一條指令功能。教學(xué)重點:1.80C51系列單片機尋址方式所對應(yīng)的尋址空間;2.80C51系列單片機指令功能。教學(xué)難點:1.數(shù)據(jù)傳送類指令中對不同的存儲空間應(yīng)采用的傳送指令及尋址方式。2.間接尋址方式,第3章指令系統(tǒng),31指令系統(tǒng)簡介,1.80C51系列指令系統(tǒng)概述指令是規(guī)定計算機進行某種操作的命令。計算機能夠執(zhí)行的各種指令的集合就稱為指令系統(tǒng)。根據(jù)代碼長度,80C51單片機的指令有單字節(jié)、雙字節(jié)和三字節(jié)指令。按照指令執(zhí)行速度又可分為單周期、雙周期和四周期指令。2.匯編語言指令格式80C51匯編語言指令格式如下:操作碼操作數(shù)1,操作數(shù)2,操作數(shù)3;注釋操作碼:是由助記符表示的字符串,它規(guī)定了指令的操作功能。操作數(shù):如果指令中有操作數(shù),則它是指參加操作的數(shù)據(jù)或數(shù)據(jù)的地址。例如一條傳送指令的書寫格式為:MOVA,45H;(45H)A它表示將45H存儲單元的內(nèi)容送到累加器A中。,3.2尋址方式指令系統(tǒng)的尋址方式規(guī)定了操作數(shù)的訪問方式。80C51指令系統(tǒng)有寄存器尋址、直接尋址、間接尋址、立即尋址、基址變址尋址和相對尋址等七種尋址方式。3.2.1匯編指令中的符號約定Rn(n07)-當(dāng)前選中的8個工作寄存器R0R7,它在片內(nèi)數(shù)據(jù)存儲器中的地址由PSW中RSl、RS0確定;Ri(i0或1)-當(dāng)前選中的用于間接尋址的工作寄存器R0、R1,它在片內(nèi)數(shù)據(jù)存儲器中的地址由RS0、RS1確定;direct-8位直接地址,可以是片內(nèi)RAM單元地址或SFR地址;data8-8位常數(shù);datal6-16位常數(shù);,addrl6-16位目的地址,尋址空間64K字節(jié)程序存儲器;addr11-11位目的地址;rel-補碼形式的8位地址偏移量,用于相對轉(zhuǎn)移指令中bit-位地址,片內(nèi)RAM或SFR的可尋址位的位地址;-間接尋址寄存器的前綴;-位操作數(shù)的取反操作前綴。以下符號僅出現(xiàn)在指令注釋或功能說明中。X-片內(nèi)RAM的直接地址(包含位地址)或寄存器。(X)-表示X中的內(nèi)容。(X)-在間接尋址方式中,表示由間址寄存器X指出的地址單元中的內(nèi)容。-指令操作流程,將箭頭左邊內(nèi)容送入箭頭右邊的單元內(nèi)。,1.立即數(shù)尋址方式立即數(shù)(指令中的常數(shù))直接參與指令操作。立即數(shù)前必須加“#”標(biāo)記。指令中的立即數(shù)有8位立即數(shù)#data8和16位立即數(shù)#data16。例1MOVA,#3AH;立即數(shù)3AH送累加器A圖3-1MOVA,#3AH指令執(zhí)行示意圖,2.直接尋址方式,在這種尋址方式中,操作數(shù)項給出的是參加運算的操作數(shù)的地址。可尋址空間有特殊功能寄存器、內(nèi)部數(shù)據(jù)存儲器以及位地址。其中特殊功能寄存器和位地址空間只能用直接尋址方式來訪問。例1MOVA,3AH;把A的內(nèi)容送3AH單元。例2MOVP1,#10H;將立即數(shù)10H送P1口。注意:例2中的目的操作數(shù)P1是直接尋址方式,這里用符號P1代替了直接地址90H。,圖3-3MOVA,3AH指令執(zhí)行示意圖,3.寄存器尋址方式寄存器尋址是對選定的工作寄存器R0R7、累加器A、通用寄存器B、地址寄存器DPTR和進位CY中的數(shù)進行操作。例1.MOVA,R2;將當(dāng)前工作寄存器的內(nèi)容送累加器A。(指令代碼為1字節(jié)EA注意R2在片內(nèi)RAM的位置,它由RS0、RS1決定。如PSW中RS1、RS0的值分別為1、0,則現(xiàn)在的R2屬于第二組工作寄存器,那么它的地址為12H。現(xiàn)已知12H中存放著數(shù)值4AH,則執(zhí)行該指令后,4AH就被送到A累加器中。,圖3-4MOVA,R2指令執(zhí)行示意圖,4.寄存器間接尋址方式,在這種尋址方式中,操作數(shù)所指定的寄存器中存放的不是操作數(shù)本身,而是操作數(shù)的地址。這種尋址方式用于訪問片內(nèi)數(shù)據(jù)存儲器或片外數(shù)據(jù)存儲器。間接尋址寄存器:Ri(8位地址指針)和DPTR(16位地址指針),間接尋址寄存器前加表示間址操作。例1MOVR0,#50HMOVA,R0例2MOVDPTR,#2760HMOVXDPTR,A,圖3-5MOVA,R0指令執(zhí)行示意圖,5.變址尋址(基址寄存器變址寄存器的間接尋址)變址尋址方式中使用DPTR或PC作基址寄存器,累加器A作變址寄存器。采用變址尋址的指令只有三條:MOVCA,A+DPTRMOVCA,A+PCJMPA+DPTR前兩條用于程序存儲器的查表操作,后一條用于程序的分支散轉(zhuǎn)。,例1現(xiàn)假設(shè)MOVCA,ADPTR指令存放在70H單元,ACC中原存放值為E0H,DPTR中值為2000H,則ADPTR形成的地址為20E0H。20E0H單元中內(nèi)容為47H,則執(zhí)行該指令后,ACC中原E0H被47H代替。該指令執(zhí)行過程示于圖3-7。,6.相對尋址方式相對尋址是將程序轉(zhuǎn)移到相對地址的轉(zhuǎn)移指令。是將程序計數(shù)器PC中的當(dāng)前內(nèi)容(轉(zhuǎn)移指令的下一條指令地址)與轉(zhuǎn)移指令第二字節(jié)所給出的偏移量相加,其結(jié)果作為跳轉(zhuǎn)指令的轉(zhuǎn)移地址。偏移量為帶符號的數(shù),其范圍為+127128。程序設(shè)計中,相對地址可以用指令標(biāo)號或直接地址偏移量數(shù)值,但要注意,相對轉(zhuǎn)移地址的偏移量不得超過+127128。,例1JC03H,該指令表示若進位C0,則程序順序執(zhí)行,PCPC+2;若進位C1,則以PC中的當(dāng)前內(nèi)容為基地址,加上偏移量03H后所得到的結(jié)果為該轉(zhuǎn)移指令的目的地址。,圖3-8JC03H指令執(zhí)行示意圖,7.位尋址方式位尋址空間:片內(nèi)RAM的位尋址區(qū)(20H2FH單元的128位)和SFR中的可位尋址的位單元。位累加器:在進行位操作時,借助于進位位C作為操作累加器。位地址與字節(jié)直接尋址中的字節(jié)地址形式完全一樣,主要由操作碼來區(qū)分,使用時需予以注意。例1SETB3DH;將片內(nèi)RAM位地址3DH即27H單元的第5位置“1”。例2ANLC,3DH;將3DH的位狀態(tài)與進位位C相與,結(jié)果保留在C中。,操作數(shù)尋址方式與尋址空間,33指令系統(tǒng)分類介紹,3.3.1數(shù)據(jù)傳送類指令(共24條)1內(nèi)部RAM數(shù)據(jù)傳送指令下面分類介紹:(1)累加器為目的操作數(shù)的指令MOVA,Rn;(Rn)AMOVA,direct;(direct)AMOVA,Ri;(Ri)AMOVA,data;dataA(2)以寄存器Rn為目的操作數(shù)的指令MOVRn,A;(A)RnMOVRn,direct;(direct)RnMOVRn,data;dataRn,(3)以直接地址為目的操作數(shù)的指令MOVdirect,A;(A)(direct)MOVdirect,Rn;(Rn)(direct)MOVdirect,direct;(direct)(direct)MOVdirect,Ri;(Ri)(direct)MOVdirect,data;data(direct)(4)以間接地址為目的操作數(shù)的指令MOVRi,A;(A)(Ri)MOVRi,direct;(direct)(Ri)MOVRi,data;data(Ri)(5)16位數(shù)據(jù)傳送指令MOVDPTR,data16;dataHDPH,datalDPL,2外部數(shù)據(jù)傳送指令MOVXDPTR,AMOVXA,DPTRMOVXRi,AMOVXA,Ri由于在80C51指令系統(tǒng)中,沒有專門對外設(shè)的輸入/輸出指令,因此80C51單片機只能用這四條指令與外部設(shè)備交換數(shù)據(jù)。后2條指令使用不方便,很少使用.,例5把程序存儲器ROM中起始地址為1000H,長度為20H的數(shù)據(jù)塊傳送到以1A00H為起始地址的外部RAM中,要求使用兩個DPTR數(shù)據(jù)指針來簡化程序,注意輔助寄存器AUXR1的地址為A2H。,解:根據(jù)題意可編程序如下:MOVDPTR,#1A00H;1A00H作為外部RAM首地址ORLA2H,#1;選擇DPTR1MOVDPTR,#1000H;1000H作為程序存儲器首地址MOVR1,#20H;數(shù)據(jù)塊長度R1LP2:MOVCA,A+DPTR;取程序存儲器中的數(shù)據(jù)INCDPTR;DPTR1加1ANLA2H,#0FEH;恢復(fù)RAM的指針MOVXDPTR,A;數(shù)據(jù)送到外部RAM中INCDPTR;DPTR0加1ORLA2H,#01;恢復(fù)ROM的指針DJNZR1,LP2;數(shù)據(jù)沒有傳送完繼續(xù),3查表指令在80C5l指令系統(tǒng)中,有2條極有用的查表指令,其數(shù)據(jù)表格放在程序存儲器中。MOVCA,APC;(PC)lPC,(A)(PC)AMOVCA,ADPTR;((A)(DPTR)A4堆棧操作指令PUSHdirect;(SP)1SP,(direct)(SP)POPdirect;(SP)(direct),(SP)-1SP,例6執(zhí)行如下程序300H:MOVA,0DH;0DHA302H:MOVCA,APC;(0DH303H)A303H:MOVR0,A;(A)R0數(shù)據(jù)表格:310H:07H311H:04H312H:0AH結(jié)果:A07H,R007H,PC304H例7執(zhí)行如下程序,104H:MOVA,12H;12HA106H:MOVDPTR,2000H;2000HDPTR109H:MOVCA,A+DPTR;(12H+2000H)A數(shù)據(jù)表格:2010H:22H,34H,06H,48H結(jié)果:A06H,PC100AH,例8已知片內(nèi)RAM60H單元中存放數(shù)值為86H,設(shè)堆棧指針為30H,把此數(shù)值壓入堆棧,然后再彈出到50H單元中。,根據(jù)題意編寫指令如下:MOVSP,#30H;30HSPPUSH60H;(SP)+1SP,(60H)(31H)POP50H;(31H)(50H),(SP)-1SP程序執(zhí)行過程示于圖3-11。,5交換指令XCHA,Rn;ARnXCHA,direct;A(direct)XCHA,Ri;A(Ri)XCHDA,Ri;A.3A.0(Ri.3Ri.0)SWAPA;A.3A.0A.7A.4這組指令的前三條為全字節(jié)交換指令。后兩條為半字節(jié)交換指令。圖3-13XCHDA,R0指令執(zhí)行示意圖,傳送指令使用注意事項:片內(nèi)存儲器可以以直接尋址的方式將數(shù)據(jù)從一個單元送到另一個單元;片內(nèi)存儲器的任一單元可以與工作寄存器或間址寄存器指定的地址單元間相互傳送數(shù)據(jù),但是,工作寄存器之間不能直接傳送數(shù)據(jù),也不能通過間址寄存器與片內(nèi)存儲器傳送數(shù)據(jù);立即數(shù)可以送到以寄存器間接尋址、直接尋址的方式的片內(nèi)存儲器的任一單元或工作寄存器;堆棧操作只能采用直接尋址方式。傳送類指令一般不影響標(biāo)志位,只有堆棧操作可以直接修改程序狀態(tài)字PSW。另外,傳送目的操作數(shù)為ACC的指令將影響奇偶標(biāo)志P。,3.3.2算術(shù)運算類指令(共23條)算術(shù)運算類指令主要是對8位無符號數(shù)據(jù)進行算術(shù)操作,其中包括加(ADD)、帶進位加(ADDC)、帶借位減法(SUBB)、乘(MUL)、除(DIV)、加1(INC)、減1(DEC)指令;借助溢出標(biāo)志,可對有符號數(shù)進行補碼運算;借助進位標(biāo)志,可進行多精度加、減運算;也可以對壓縮BCD數(shù)進行加法運算。,1加法指令A(yù)DDA,Rn;(A)(Rn)AADDA,direct;(A)(direct)AADDA,Ri;(A)(Ri)AADDA,data;(A)dataA2帶進位加法指令A(yù)DDCA,Rn;(A)(Rn)CYAADDCA,direct;(A)(direct)CYAADDCA,Ri;(A)(Ri)CYAADDCA,data;(A)dataCYA位,3帶借位減法指令SUBBA,Rn;(A)(Rn)CYASUBBA,direct;(A)(direct)CYASUBBA,Ri;(A)(Ri)CYASUBBA,data;(A)dataCYA4乘法指令MULAB;(A)(B)BA,B158,A705除法指令DIVAB;(A)(B)的商A,余數(shù)B6加一指令I(lǐng)NCA;(A)1AINCRn;(Rn)1RnINCdirect;(direct)1(direct)INCRi;(Ri)1(Ri)INCDPTR;(DPTR)1DPTR,7減一指令DECA;(A)1ADECRn;(Rn)1RnDECdirect;(direct)l(direct)DECRi;(Ri)1(Ri)8十進制調(diào)整指令DAA,算術(shù)運算類指令匯總圖,算術(shù)運算操作對PSW中標(biāo)志位的影響,算術(shù)運算指令應(yīng)用舉例,例1已知(A)DBH,(R4)73H,CY1,執(zhí)行指令“SUBBA,R4”則結(jié)果如下:(A)67H,CY0,OV1例2試編寫計算1234H減0FE7H的程序,將和的高8位存入41H,低8位存入40H單元。CLRC;進位位C清“0”MOVA,#34H;34HASUBBA,#0E7H;(A)E7HCYAMOV40H,A;(A)(40H)MOVA,#12H;12HASUBBA,#0FH;(A)0FHCYAMOV41H,A;(A)(41H),3.3.3邏輯運算類指令(共25條)邏輯運算類指令主要用于對兩個操作數(shù)按位進行邏輯操作,操作結(jié)果送到A累加器或直接尋址單元,若直接地址為I/O端口,則為“讀-改-寫”操作。這類指令執(zhí)行的操作主要有“與”(ANL)、“或”(ORL)、“異或”(XRL)以及累加器自身的循環(huán)移位、取反(CPL)、清除(CLR)等。這些指令執(zhí)行時一般不影響程序狀態(tài)字寄存器PSW,僅當(dāng)目的操作數(shù)為ACC時對奇偶標(biāo)志位有影響。,1.邏輯“與”指令A(yù)NLA,Rn;(A)(Rn)AANLA,direct;(A)(direct)AANLA,Ri;(A)(Ri)AANLA,#data;(A)dataAANLdirect,A;(direct)(A)(direct)ANLdirect,#data;(direct)data(direct)2邏輯或指令ORLA,Rn;(A)+(Rn)AORLA,direct;(A)+(direct)AORLA,Ri;(A)+((Ri)AORLA,data;(A)+dataAORLdirect,A;(direct)+(A)(direct)ORLdirect,data;(direct)+data(direct),3邏輯異或指令XRLA,Rn;(A)(Rn)AXRLA,direct;(A)(direct)AXRLA,Ri;(A)(Ri)AXRLA,data;(A)dataAXRLdirect,A;(direct)(A)(direct)XRLdirect,data;direct)data(direct),4循環(huán)移位指令,5取反指令CPLA;,A,5取反指令CPLA;,A,5取反指令CPLA;(/A)A6清0指令CLRA;0A,2.邏輯運算指令舉例,例1已知(A)1AH,(R0)45H,(45H)39H,執(zhí)行指令ORLA,R0,則操作如下:00011010(1AH)+)00ll1001(39H),00111011(3BH)結(jié)果(A)3BH,(R0)45H,(45H)39H,P1,例2將累加器A中低4位的狀態(tài),通過P1口的高4位輸出。解:根據(jù)題意可編程如下:ANLA,0FH;屏蔽A.7A.4SWAPA;高、低半字節(jié)交換ANLP1,0FH;清P1口高4位ORLP1,A;使P1.7P1.4按A中初始值的A.3A.0值置位,3.3.4轉(zhuǎn)移操作類指令(共17條)這類指令的功能主要是控制程序從原順序執(zhí)行地址轉(zhuǎn)移到其它指令地址上。包括跳轉(zhuǎn)、調(diào)用、散轉(zhuǎn)、返回及空操作等操作。1無條件轉(zhuǎn)移指令LJMPaddrl6;addrl6PCAJMPaddrl1;(PC)2PC,addr11PC.10PC.0SJMPrel;(PC)2relPC2條件轉(zhuǎn)移JZrel;A0:(PC)2relPCA0:(PC)2PC,JNZrel;A0:(PC)2relPCA0:(PC)2PC,DJNZRn,re1;(Rn)-1Rn,(Rn)0:(PC)2relPC(Rn)0:(PC)2PC,DJNZdirect,rel;(direct)1(direct),(direct)0:(PC)3relPC(direct)0:(PC)3PC,CJNEA,direct,rel;A(direct):(PC)3PC,0CA(direct):(PC)3relPC,0CA(direct):(PC)3re1PC,1C,CJNEA,data,rel;(A)data(PC)3PC,0C(A)data(PC)3relPC,0C(A)data:(PC)3relPC,1C,CJNERn,data,rel;(Rn)data:(PC)3PC,0C(Rn)data:(PC)3relPC,0C(Rn)data:(PC)3relPC,1C,CJNERi,data,rel;((Ri)data:(PC)3PC,0C(Ri)data:(PC)3relPC,0C(Ri)data:(PC)3relPC,1C,3間接轉(zhuǎn)移指令JMPADPTR;(A)(DPTR)PC4調(diào)用子程序及返回指令LCALLaddr16;(PC)3PC,(SP)1SP,(PC.7PC.0)(SP),(SP)1SP,(PC.15PC.8)(SP),addr16PCACALLaddr11;(PC)2PC,(SP)1SP,(PC.7PC.0)(SP),(SP)1SP,(PC.15PC.8)(SP),addr11PC.10PC.0RET;(SP)PC.15PC.8,(SP)-1SP,(SP)PC.7PC.0,(SP)-1SPRETI;除具有RET指令的功能外,還將清除優(yōu)先級狀態(tài)觸發(fā)器,詳見第6章5空操作指令NOP,轉(zhuǎn)移指令應(yīng)用舉例,例1根據(jù)R7的內(nèi)容,轉(zhuǎn)向各個操作程序。R70,轉(zhuǎn)入OPR0R71,轉(zhuǎn)入OPR1R7n,轉(zhuǎn)入OPRn解:MOVDPTR,JPTAB1;跳轉(zhuǎn)表首地址送數(shù)據(jù)指針MOVA,R7;R72A(修正變址值)ADDA,R7JNCNOAD;判有否進位INCDPH;有進位則加到高字節(jié)地址NOAD:JMPADPTR;轉(zhuǎn)向形成的散轉(zhuǎn)地址入口JPTAB1:AJMPOPR0;直接轉(zhuǎn)移地址表AJMPOPR1AJMPOPRn,例2某子程序SUB1入口地址是340BH,調(diào)用指令LCALLSUB1地址為2042H,該段程序調(diào)用過程中PC及SP的變化如下:地址指令注釋2040HMOVSP,#20H;設(shè)置堆棧指針,20HSP2042HLCALLSUB1;調(diào)用子程序,2045HPC,21HSP,45H(21H),22HSP,20H(22H),340BHPC340BHSUB1:MOVA,R03412HRET;(22H)PCH,(21H)PCL,此時PC2045H,SP20H,例3、根據(jù)A中數(shù)值,置相應(yīng)的標(biāo)志位。當(dāng)#dataLA#dataH,標(biāo)志位F0清零;否則F0置1。,解:ORG2000HST:CLRF0CJNEA,#dataH,HCNTRETHCNT:JCLCSF0:SETBF0RETLC:CJNEA,#dataL,LCNTRETLCNT:JCSF0RET,3.3.5位操作類指令(共17條)包括位變量傳送、邏輯運算、控制程序轉(zhuǎn)移等指令。在進行位操作時,位累加器C為進位標(biāo)志CY。在匯編語言中位地址的表達方式有如下幾種:(l)直接(位)地址方式:如D4H;(2)點操作符號方式:如PSW.4,(D0H).4;(3)位名稱方式:如RS1;(4)用戶定義名方式:如用偽指令BIT定義下式:SUB.REGbitRS1經(jīng)定義后,指令中可以用SUB.REG代替RS1。上面4種方式都可表達PSW(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年船舶配套業(yè)項目合作計劃書
- 2025年專門用途燈具:工藝裝飾燈具項目建議書
- 腎病的康復(fù)指導(dǎo)
- 遼寧省2025秋九年級英語全冊Unit4Iusedtobeafraidofthedark課時1SectionA(1a-2d)課件新版人教新目標(biāo)版
- 2025年大功率電源及系統(tǒng)項目發(fā)展計劃
- 2025年金融擔(dān)保服務(wù)項目發(fā)展計劃
- 吉林省白城市2025~2026學(xué)年度上學(xué)期期末測試 七年級數(shù)學(xué)(含答題卡、答案)
- 腦卒中概述與分類
- 護理護理研究方法
- 體位引流護理的質(zhì)量控制與改進
- 野性的呼喚讀書分享
- 極簡化改造實施規(guī)范
- 達托霉素完整版本
- DBJ51-T 139-2020 四川省玻璃幕墻工程技術(shù)標(biāo)準(zhǔn)
- 一帶一路教學(xué)課件教學(xué)講義
- 中醫(yī)熱敏灸療法課件
- 工廠蟲害控制分析總結(jié)報告
- 回顧性中醫(yī)醫(yī)術(shù)實踐資料(醫(yī)案)表
- 延期交房起訴狀
- 廣東省消防安全重點單位消防檔案
- 高考日語形式名詞わけ、べき、はず辨析課件
評論
0/150
提交評論