第3章 MCS-51單片機的指令系統(tǒng)_第1頁
第3章 MCS-51單片機的指令系統(tǒng)_第2頁
第3章 MCS-51單片機的指令系統(tǒng)_第3頁
第3章 MCS-51單片機的指令系統(tǒng)_第4頁
第3章 MCS-51單片機的指令系統(tǒng)_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第3章MCS-51單片機的指令系統(tǒng)

3.1指令編碼格式及常用符號3.2尋址方式3.3數(shù)據(jù)傳送類指令

3.4算術運算類指令

3.5邏輯運算和移位類指令3.6子程序調(diào)用與控制轉(zhuǎn)移類指令

3.7位操作類指令

MCS—51單片機共有111條指令。其特點為:(1)指令執(zhí)行時間短。其中1個機器周期指令64條,2個機器周期指令45條,4個機器周期指令2條(乘、除法指令)。(2)指令字節(jié)少。其中單字節(jié)指令49條,雙字節(jié)指令45條,三字節(jié)指令17條。(3)位操作指令豐富。(4)可直接用傳送指令實現(xiàn)端口的輸入/輸出操作。3.1指令編碼格式及常用符號

3.1.1指令的格式

[標號:]操作碼[目的操作數(shù)][,源操作數(shù)];[注釋]例如:L1:MOVA,20H;(20H)→A3.1.2指令的分類

1.按指令所占存儲器字節(jié)數(shù)分:(1)單字節(jié)指令(49條);(2)雙字節(jié)指令(46條);(3)三字節(jié)指令(16條)。2.按指令執(zhí)行周期數(shù)分:(1)單周期指令(64條);(2)雙周期指令(45條);(3)四周期指令(2條,乘法指令和除法指令)。3.按指令功能分:(1)數(shù)據(jù)傳送指令(28條);(2)算術運算指令(24條);(3)邏輯運算指令(25條);(4)控制轉(zhuǎn)移類指令(17條);(5)位操作指令(17條)。3.1.3常用符號

Rn(n=0~7)——當前選中的工作寄存器組中的寄存器R0~R7之一;Ri(i=0,1)——當前選中的工作寄存器組中的寄存器R0或R1;@——間接尋址方式中表示間址寄存器的符號;#data——8位立即數(shù);#datal6——16位立即數(shù);direct——8位片內(nèi)RAM單元(包括SFR)的直接地址;addrll——11位目的地址,該地址在與下一條指令地址相同的2KB的ROM空間內(nèi)。add16——16位目的地址,該地址在64KB的ROM空間內(nèi)。rel——補碼形式表示的8位地址偏移量。以下一條指令第一字節(jié)地址為基值。其值在-128~+127范圍內(nèi);bit——片內(nèi)RAM或SFR的直接尋址位地址;C——最高進位標志位或布爾處理器的累加器;(X)——表示地址單元或寄存器中的內(nèi)容;((X))——表示以X單元或寄存器中的內(nèi)容為地址間接尋址單元的內(nèi)容;→——表示傳送給;?

——表示交換;$——表示當前指令的地址;/——表示取反;3.2尋址方式

3.2.1立即尋址立即尋址就是指令中直接給出操作數(shù)的尋址方式。指令中直接給出的這個操作數(shù)稱為立即數(shù),在指令格式中,立即數(shù)前面有“#”標記。立即數(shù)可以是8位,也可以是16位。例如:MOVA,#50H;#50H→A3.2.2直接尋址

直接尋址就是指令中給出的是存儲單元的地址,以這個地址單元中的內(nèi)容作為操作數(shù)的尋址方式。例如:MOVA,50H;(50H)→A直接尋址方式的尋址范圍只限于單片機內(nèi)部數(shù)據(jù)存儲器中地址為00H~7FH的128個存儲單元以及21個特殊功能寄存器。3.2.3寄存器尋址寄存器尋址就是指令中給出的是寄存器名,以這個寄存器中的內(nèi)容作為操作數(shù)的尋址方式。寄存器尋址方式的尋址范圍是當前工作寄存器組的8個單元R0~R7,以及少數(shù)特殊功能寄存器如A、B和DPTR。例如:MOVA,R0;(R0)→A3.2.4寄存器間接尋址寄存器間接尋址就是指令中給出的是寄存器名,以寄存器中的內(nèi)容作為地址,以地址單元中的內(nèi)容作為操作數(shù)的尋址方式。例如:MOVA;((R0))→A寄存器間接尋址方式的尋址范圍包括片內(nèi)和片外數(shù)據(jù)存儲器。3.2.5變址尋址變址尋址就是以PC或DPTR中的內(nèi)容作為基址,以累加器A中的內(nèi)容作為變址,兩者相加形成和地址,再以該地址中的內(nèi)容作為操作數(shù)的尋址方式。例如:MOVCA

;((A)+(DPTR))→A變址尋址只能對程序存儲器中的數(shù)據(jù)作尋址操作,常用于訪問程序存儲器中的常數(shù)表。3.2.6相對尋址相對尋址就是以程序計數(shù)器PC的當前值(該指令執(zhí)行后的PC值,即下一條指令的地址)為基址,加上指令給出的相對偏移量rel,形成新的PC值的尋址方式。例如:2000H:SJMP08H

;(PC)+2+08H→PC3.2.7位尋址位尋址就是對位地址中的內(nèi)容做位操作的尋址方式。例如:CLR00H;0→00H3.3數(shù)據(jù)傳送類指令

3.3.1以累加器A為目的操作數(shù)的指令

匯編語言指令指令功能MOVA,RnMOVA,directMOVAMOVA,#data(Rn)→

A (direct)→

A((Ri))→

A#data→A3.3.2以寄存器Rn為目的操作數(shù)的指令匯編語言指令指令功能MOVRn,A MOVRn,directMOVRn,#data(A)→

Rn (direct)→

Rn #data→Rn 3.3.3以直接地址direct為目的操作數(shù)的指令

匯編語言指令指令功能MOVdirect,A MOVdirect,Rn MOVdirect,directMOVdirectMOVdirect,#data(A)→

direct(Rn)→

direct (direct)→

direct((Ri))→

direct #data→direct3.3.4以間接地址Ri為目的操作數(shù)的指令

匯編語言指令指令功能MOV@Ri,A MOV@Ri,directMOV@Ri,#data (A)→(Ri)(direct)→(Ri)

#data→(Ri)3.3.5以DPTR為目的操作數(shù)的指令

匯編語言指令指令功能MOVDPTR,#data16#data16→DPTR3.3.6訪問外部RAM的指令

匯編語言指令指令功能MOVXAMOVXA MOVX@DPTR,AMOVX@Ri ,A ((DPTR))→

A((Ri))→

A(A)→(DPTR)(A)→((Ri))3.3.7讀ROM指令

匯編語言指令指令功能MOVCAMOVCA(PC)+1→PC((A)+(PC))→

A((A)+(DPTR))→

A3.3.8數(shù)據(jù)交換指令

匯編語言指令指令功能XCHA,Rn XCHA,directXCHAXCHDA(A)←→(Rn)(A)←→(direct)(A)←→((Ri))(A)3~0

←→((Ri))3~03.3.9堆棧操作指令

匯編語言指令指令功能PUSHdirectPOPdirect(SP)+1→SP(direct)→(SP)((SP))→

direct(SP)-1→SP3.4算術運算類指令

3.4.1加法指令

(1)不帶進位的加法指令匯編語言指令指令功能ADDA,RnADDA,directADDAADDA,#data(A)+(Rn)→

A (A)+(direct)→

A(A)+((Ri))→

A(A)+#data→A(2)帶進位的加法指令匯編語言指令指令功能ADDCA,RnADDCA,directADDCAADDCA,#data(A)+(Rn)+(Cy)→

A(A)+(direct)+(Cy)→

A(A)+((Ri))+(Cy)→

A(A)+#data+(Cy)→

A(3)增量指令匯編語言指令指令功能INCA INCRnINCdirectINC@RiINCDPTR(A)+1→A(Rn)+1→Rn(direct)+1→direct((Ri))+1→(Ri)(DPTR)+1→DPTR(4)十進制調(diào)整指令匯編語言指令指令功能DAA 對A中的結(jié)果進行十進制調(diào)整3.4.2減法指令(1)帶借位的減法指令匯編語言指令指令功能SUBBA,RnSUBBA,directSUBBASUBBA,#data(A)-(Cy)-(Rn)→

A(A)-(Cy)-(direct)→

A(A)-(Cy)-((Ri))→

A(A)-(Cy)-#data→A(2)減量指令匯編語言指令指令功能DECA DECRnDECdirectDEC@Ri(A)-1→A(Rn)-1→Rn(direct)-1→direct((Ri))-1→

(Ri)3.4.3乘法指令

匯編語言指令指令功能MULAB (A)×(B)→(B)(A)3.4.4除法指令

匯編語言指令指令功能DIVAB (A)/(B)3.5邏輯運算和移位類指令

3.5.1邏輯與指令

匯編語言指令指令功能ANLA,Rn ANLA,direct ANLA ANLA,#data ANLdirect,A ANLdirect,#data(A)∧(Rn)→

A(A)∧(direct)→

A(A)∧((Ri))→

A (A)∧#data→A (direct)∧(A)→

direct(direct)∧#data→direct3.5.2邏輯或指令

匯編語言指令指令功能ORLA,Rn ORLA,direct ORLA ORLA,#data ORLdirect,A ORLdirect,#data(A)∨(Rn)→

A (A)∨(direct)→

A (A)∨((Ri))→

A (A)∨#data→A (direct)∨(A)→

direct(direct)∨#data→direct3.5.3邏輯異或指令

匯編語言指令指令功能XRLA,Rn XRLA,direct XRLA XRLA,#data XRLdirect,A XRLdirect,#data(A)∨(Rn)→

A (A)∨(direct)→

A (A)∨((Ri))→

A (A)∨#data→A (direct)∨(A)→

direct(direct)∨#data→direct3.5.4清零和取反指令

匯編語言指令指令功能CLRACPLA0→A (A)→

A3.5.5移位指令

匯編語言指令指令功能RLARRARLCARRCASWAPA(A)6~0

→A7~1,(A)7

→A0

(A)7~1

→A6~0,(A)0

→A7

(A)6~0

→A7~1,(A)7

→Cy,(Cy)→

A0(A)7~1

→A6~0,(A)0

→Cy,(Cy)→

A7(A)7~4

←→(A)3~0

3.6子程序調(diào)用與控制轉(zhuǎn)移類指令

3.6.1子程序調(diào)用與返回指令

匯編語言指令指令功能ACALLaddr11LCALLaddr16RETRETI(PC)+2→PC(SP)+1→SP(PC低8位)→(SP)(SP)+1→SP(PC高8位)→(SP)

addr11→PC10~0(PC)+3→PC(SP)+1→SP(PC低8位)→(SP)(SP)+1→SP(PC高8位)→(SP)

addr16→PC((SP))→

PC高8位(SP)-1→SP((SP))→

PC低8位(SP)-1→SP((SP))→

PC高8位(SP)-1→SP((SP))→

PC低8位(SP)-1→SP3.6.2無條件轉(zhuǎn)移指令

匯編語言指令指令功能AJMPaddr11LJMPaddr16SJMPrelJMP@A+DPTR(PC)+2→PCaddr11→PC10~0(PC)+3→PCaddr16→PC(PC)+2+rel→PC(A)+(DPTR)→

PC3.6.3條件轉(zhuǎn)移指令(1)累加器判0轉(zhuǎn)移指令匯編語言指令指令功能JZrel JNZrel(A)=00H,(PC)+2+rel→PC(A)≠00H,(PC)+2→PC(A)≠00H,(PC)+2+rel→PC(A)=00H,(PC)+2→PC(2)兩數(shù)比較不等轉(zhuǎn)移指令匯編語言指令指令功能CJNEA,#data,relCJNEA,direct,relCJNERn,#data,relCJNE@Ri,#data,rel(A)=#data,(PC)+3→PC,0→Cy(A)>#data,(PC)+3+rel→PC,0→Cy(A)<#data,(PC)+3+rel→PC,1→Cy(A)=(direct),(PC)+3→PC,0→Cy(A)>(direct),(PC)+3+rel→PC,0→Cy(A)<(direct),(PC)+3+rel→PC,1→Cy(Rn)=#data,(PC)+3→PC,0→Cy(Rn)>#data,(PC)+3+rel→PC,0→Cy(Rn)<#data,(PC)+3+rel→PC,1→Cy((Ri))=#data,(PC)+3→PC,0→Cy((Ri))>#data,(PC)+3+rel→PC,0→Cy((Ri))<#data,(PC)+3+rel→PC,1→Cy(3)減1非零轉(zhuǎn)移的2條指令匯編語言指令指令功能DJNZRn,relDJNZdirect,rel(Rn)-1→Rn(Rn)≠00H,(PC)+2+rel→PC(Rn)=00H,(PC)+2

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論