單片機(jī)原理與應(yīng)用CH3_第1頁
單片機(jī)原理與應(yīng)用CH3_第2頁
單片機(jī)原理與應(yīng)用CH3_第3頁
單片機(jī)原理與應(yīng)用CH3_第4頁
單片機(jī)原理與應(yīng)用CH3_第5頁
已閱讀5頁,還剩53頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

MCS-51單片機(jī)的指令系統(tǒng)第三章§3.1MCS-51單片機(jī)指令系統(tǒng)概述★

什么是指令?ⅰ

指令是供用戶使用的單片機(jī)的軟件資源。ⅱ

指令是程序員與單片機(jī)溝通的語言?!?/p>

指令的分類:ⅰ

按照指令占用的存儲(chǔ)器字節(jié)數(shù):單字節(jié)指令雙字節(jié)指令三字節(jié)指令ⅱ

按照指令執(zhí)行所需時(shí)間:單周期指令雙周期指令四周期指令ⅲ

按照指令的功能:數(shù)據(jù)傳送指令(28條)算術(shù)運(yùn)算指令(24條)邏輯操作與循環(huán)移位指令(25條)控制轉(zhuǎn)移指令(17條)位操作指令(17條)§3.1MCS-51單片機(jī)指令系統(tǒng)概述★

指令的表示形式:二進(jìn)制形式十六進(jìn)制形式助記符形式[例]MOVA,R0------助記符形式

E8H------十六進(jìn)制形式

11101000B------二進(jìn)制形式★

指令格式:[標(biāo)號(hào):]指令助記符[操作數(shù)1][,操作數(shù)2][,操作數(shù)3][;注釋]★

什么是指令系統(tǒng)?一種型號(hào)的CPU所能執(zhí)行的指令的集合,叫做它的指令系統(tǒng)?!?.2MCS-51單片機(jī)的尋址方式◆

什么是尋址方式?所謂尋址方式,就是CPU尋找操作數(shù)的方法?!?/p>

重要的符號(hào)約定:RnRidirect#data#data16addr11addr16bitrelDPTRABC@/(×)((×))←§3.2MCS-51單片機(jī)的尋址方式1、立即尋址特征:指令碼中含有操作數(shù)本身,以“#”為標(biāo)志。操作過程:指令譯碼的同時(shí)獲得操作數(shù)。[例]MOVA,#30H

指令碼:74H,30H1取指從ROM中取出指令碼(PC加1)2譯碼對(duì)指令碼進(jìn)行翻譯、解釋3執(zhí)行執(zhí)行指令規(guī)定的相應(yīng)功能最簡單的尋址方式§3.2MCS-51單片機(jī)的尋址方式2、直接尋址特征:①指令碼中含有操作數(shù)的存儲(chǔ)地址;②操作數(shù)存儲(chǔ)在此地址指向的存儲(chǔ)單元中;操作過程:1根據(jù)譯碼得到的地址找到對(duì)應(yīng)的存儲(chǔ)單元2取出該存儲(chǔ)單元中的數(shù)據(jù),即為操作數(shù)[例]MOVA,30H

指令碼:E5H,30H問題:那些存儲(chǔ)單元可以使用直接尋址?答:內(nèi)部RAM&特殊功能寄存器§3.2MCS-51單片機(jī)的尋址方式2、直接尋址[例1]MOVA,30H

指令碼:E5H,30H[例2]MOVA,90HMOVA,P1

指令碼:E5H,30H內(nèi)部RAM直接尋址舉例:特殊功能寄存器直接尋址舉例:對(duì)于特殊功能寄存器,除使用直接物理地址表示其對(duì)應(yīng)存儲(chǔ)單元外,還可使用特定名稱代替物理地址表示其對(duì)應(yīng)的存儲(chǔ)單元?!?.2MCS-51單片機(jī)的尋址方式3、寄存器尋址特征:①操作數(shù)存放在寄存器中;②指令碼中沒有寄存器的物理地址,而是其特定編號(hào);操作過程:1根據(jù)寄存器特定編號(hào)找到對(duì)應(yīng)的存儲(chǔ)單元2取出該存儲(chǔ)單元中的數(shù)據(jù),即為操作數(shù)[例1]MOVA,R0

指令碼:E8H說明:采用寄存器尋址方式的寄存器有R0~R7、A、B、DPTR§3.2MCS-51單片機(jī)的尋址方式4、寄存器間接尋址特征:①操作數(shù)的地址存放在寄存器中;②指令碼中沒有寄存器的物理地址,而是其特定編號(hào);操作過程:1根據(jù)寄存器特定編號(hào)找到寄存器對(duì)應(yīng)存儲(chǔ)單元2取出該存儲(chǔ)單元中的數(shù)據(jù),作為操作數(shù)的地址3根據(jù)該地址找到其對(duì)應(yīng)存儲(chǔ)單元,取出操作數(shù)[例1]MOVA,@R1

指令碼:E7H§3.2MCS-51單片機(jī)的尋址方式4、寄存器間接尋址關(guān)于寄存器間接尋址的說明①存放操作數(shù)實(shí)際存儲(chǔ)單元的寄存器稱為間址寄存器,以“@”為標(biāo)志,可作為間址寄存器的有R0,R1,DPTR;②寄存器間址可拓寬單片機(jī)的尋址范圍:@R0和@R1覆蓋內(nèi)部RAM的00H~7FH,@DPTR覆蓋外部RAM/ROM的全部64kB空間;③內(nèi)部RAM的80H~FFH,即特殊功能寄存器區(qū),不能使用寄存器間址,而只能使用直接尋址?!?.2MCS-51單片機(jī)的尋址方式5、變址尋址特征:①基地址寄存器PC或DPTR隱含在指令碼中;②累加器A也隱含在指令碼中,其中預(yù)先存有地址偏移量(無符號(hào)二進(jìn)制數(shù),范圍00H~FFH);問題:什么是基地址、地址偏移量?數(shù)軸原點(diǎn)單位長度正方向基地址1Byte地址增大的方向那么,地址偏移量就是沿著地址增大的方向,距離基地址的字節(jié)數(shù)?!?.2MCS-51單片機(jī)的尋址方式5、變址尋址操作過程:1

從PC或DPTR中取出基地址;從ACC中取出地址偏移量。2基地址加地址偏移量,得到操作數(shù)的存儲(chǔ)地址。3根據(jù)該地址找到對(duì)應(yīng)的存儲(chǔ)單元,取出操作數(shù)。[例]MOVDPTR,#3000HMOVA,#02HMOVCA,@A+DPTR說明:變址尋址方式所尋找的操作數(shù)位于程序只讀存儲(chǔ)器ROM。§3.2MCS-51單片機(jī)的尋址方式6、相對(duì)尋址特征:僅在相對(duì)轉(zhuǎn)移類指令中使用(指令格式中包含相對(duì)地址偏移量rel)。操作過程:1

指令譯碼,得到地址偏移量rel。2PC當(dāng)前值與地址偏移量rel相加,和回送PC。3根據(jù)新PC值,從ROM中取出指令,繼續(xù)執(zhí)行。什么是“PC當(dāng)前值”?相對(duì)地址偏移量rel與變址尋址中的地址偏移量相同嗎?§3.2MCS-51單片機(jī)的尋址方式6、相對(duì)尋址兩個(gè)重要概念◎

PC當(dāng)前值所謂PC當(dāng)前值,是指指令取指完成以后的PC值,也就是緊靠當(dāng)前正在執(zhí)行的指令存儲(chǔ)的、向著地址增大方向的、下一條指令的地址。◎

相對(duì)地址偏移量rel相對(duì)地址偏移量rel,與變址尋址方式中的地址偏移量不同,是一個(gè)單字節(jié)有符號(hào)二進(jìn)制數(shù),取值范圍是-128~+127;且包含在指令碼中?!?.2MCS-51單片機(jī)的尋址方式6、相對(duì)尋址[例]2000H:SJMP54H

指令碼:80H,54H§3.2MCS-51單片機(jī)的尋址方式7、位尋址特征:指令中包含有位地址,僅在位操作指令中使用。操作過程:1指令譯碼得到位地址,并找到對(duì)應(yīng)的位存儲(chǔ)單元。2取出該位的狀態(tài)(0/1),即為操作數(shù)。兩點(diǎn)說明:①可位尋址區(qū)域包括內(nèi)部RAM的20H~2FH和特殊功能寄存器區(qū)的個(gè)別字節(jié);②位地址的三種表示方法:*直接使用物理位地址:E7H*物理地址

+第幾位:E0H.7*SFR寄存器名

+第幾位:ACC.7§3.3MCS-51單片機(jī)的指令系統(tǒng)一、數(shù)據(jù)傳送指令

MCS-51單片機(jī)是一種精簡指令集計(jì)算機(jī)(RISC,ReducedInstructionSetComputer),其指令系統(tǒng)包括五大類、共111條指令,分別是數(shù)據(jù)傳送指令28條、算術(shù)運(yùn)算指令24條、邏輯運(yùn)算與循環(huán)移位指令25條、控制轉(zhuǎn)移指令17條和位操作指令條17條。1一般傳送指令(1)16位傳送指令MOVDPTR,#data16;DPTR←data16說明:16位傳送指令僅此一條,實(shí)際上是兩次8位傳送捆綁執(zhí)行?!?.3MCS-51單片機(jī)的指令系統(tǒng)一、數(shù)據(jù)傳送指令1一般傳送指令(2)8位傳送指令①源字節(jié)與目的字節(jié)不能相同;②立即數(shù)只能作源操作數(shù),不能作目的操作數(shù);③工作寄存器之間、寄存器間址之間、工作寄存器與寄存器間址之間不能相互傳送;§3.3MCS-51單片機(jī)的指令系統(tǒng)一、數(shù)據(jù)傳送指令1一般傳送指令(2)8位傳送指令——以累加器ACC為目的字節(jié)MOVA,Rn;A←(Rn)

MOVA,#data;A←data

MOVA,@Ri;A←((Ri))

MOVA,direct;A←(direct)(3)8位傳送指令——以Rn為目的字節(jié)MOVRn,A;Rn←(A)

MOVRn,#data;Rn←data

MOVRn,direct;Rn←(direct)§3.3MCS-51單片機(jī)的指令系統(tǒng)一、數(shù)據(jù)傳送指令1一般傳送指令(2)8位傳送指令——以direct為目的字節(jié)MOVdirect,Rn;A←(Rn)

MOVdirect,#data;A←data

MOVdirect,@Ri;A←((Ri))

MOVdirect,direct1;A←(direct)(3)8位傳送指令——以@Ri為目的字節(jié)MOV@Ri,A;(Ri)←(A)

MOV@Ri,#data;(Ri)←data

MOV@Ri,direct;(Ri)←(direct)§3.3MCS-51單片機(jī)的指令系統(tǒng)一、數(shù)據(jù)傳送指令2特殊傳送指令(1)讀ROM指令MOVCA,@A+DPTR;A←((A)+(DPTR))

MOVCA,@A+PC;A←((A)+(PC))(2)讀/寫RAM指令MOVXA,@DPTR;A←((DPTR))

MOVXA,@Ri;A←(P2(Ri))說明:沒有寫ROM指令。MOVX@DPTR,A;(DPTR)←(A)

MOVX@Ri,A;P2(Ri)←(A)讀寫說明:@Ri只能提供低8位地址,高8位地址由P2口輸出?!?.3MCS-51單片機(jī)的指令系統(tǒng)一、數(shù)據(jù)傳送指令3堆棧操作指令PUSHdirect;SP←(SP)+1,(SP)←(direct)POPdirect;(direct)←(SP),SP←(SP)-1入棧出棧4數(shù)據(jù)交換指令XCHA,Rn;(A)←→(Rn)

XCHA,direct

;(A)←→(direct)

XCHA,@Ri

;(A)←→((Ri))字節(jié)交換XCHDA,@Ri

;(A)3~0←→((Ri))3~0

SWAPA;(A)3~0←→(A)4~7半字交換§3.3MCS-51單片機(jī)的指令系統(tǒng)二、算術(shù)運(yùn)算指令1加法指令A(yù)DDA,Rn;A←(A)+(Rn)

ADDA,direct;A←(A)+(direct)

ADDA,@Ri;A←(A)+((Ri))

ADDA,#data;A←(A)+data(1)不帶進(jìn)位的加法指令A(yù)DDCA,Rn;A←(A)+(Rn)+Cy

ADDCA,direct;A←(A)+(direct)+Cy

ADDCA,@Ri;A←(A)+((Ri))+Cy

ADDCA,#data;A←(A)+data+Cy(2)帶進(jìn)位的加法指令§3.3MCS-51單片機(jī)的指令系統(tǒng)二、算術(shù)運(yùn)算指令1加法指令(3)自加1指令I(lǐng)NCA;A←(A)+1

INCRn;Rn←(Rn)+1

INCdirect;direct←(direct)+1

INC@Ri;(Ri)←((Ri))+1

INCDPTR;DPTR←(DPTR)+1(4)十進(jìn)制調(diào)整指令DAA§3.3MCS-51單片機(jī)的指令系統(tǒng)二、算術(shù)運(yùn)算指令2減法指令(1)帶進(jìn)位的減法指令SUBBA,Rn;A←(A)-(Rn)-Cy

SUBB

A,direct;A←(A)-(direct)-Cy

SUBBA,@Ri;A←(A)-((Ri))-Cy

SUBBA,#data;A←(A)-data-Cy(2)自減1指令DECA;A←(A)-1

DECRn;Rn←(Rn)-1

DECdirect;direct←(direct)-1

DEC@Ri;(Ri)←((Ri))-1§3.3MCS-51單片機(jī)的指令系統(tǒng)二、算術(shù)運(yùn)算指令3乘法指令MULAB;BA←(A)×(B)說明:積的高8位在通用寄存器B中,低8位在累加器A中。4除法指令DIVAB;(A)÷(B)=A…B說明:商在通用寄存器A中,余數(shù)在累加器B中。特別提示:乘法指令和除法指令中,操作數(shù)A、B之間不用逗號(hào)隔開!且僅此兩條指令例外!§3.3MCS-51單片機(jī)的指令系統(tǒng)三、邏輯運(yùn)算指令1邏輯“與”ANLdirect,A;direct←(direct)∧(A)

ANLdirect,#data;direct←(direct)∧dataANLA,Rn;A←(A)∧(Rn)

ANL

A,direct;A←(A)∧(direct)

ANLA,@Ri;A←(A)∧((Ri))

ANLA,#data;A←(A)∧data①邏輯“與”指令共6條,其中以direct為目的操作數(shù)的2條,以累加器A為目的操作數(shù)的4條。說明:②后續(xù)的邏輯“或”指令、邏輯“異或”指令僅助記符不同,操作數(shù)完全相同。仍是字節(jié)指令!§3.3MCS-51單片機(jī)的指令系統(tǒng)三、邏輯運(yùn)算指令2邏輯“或”O(jiān)RLdirect,A;direct←(direct)∨(A)

ORLdirect,#data;direct←(direct)∨dataORLA,Rn;A←(A)∨(Rn)

ORL

A,direct;A←(A)∨(direct)

ORLA,@Ri;A←(A)∨((Ri))

ORLA,#data;A←(A)∨data§3.3MCS-51單片機(jī)的指令系統(tǒng)三、邏輯運(yùn)算指令3邏輯“異或”XRLdirect,A;direct←(direct)⊕(A)

XRLdirect,#data;direct←(direct)⊕dataXRLA,Rn;A←(A)⊕(Rn)

XRL

A,direct;A←(A)⊕(direct)

XRLA,@Ri;A←(A)⊕((Ri))

XRLA,#data;A←(A)⊕data4累加器“清零”與“取反”清零:CLRA;A←0取反:CPLA;A←(A)注意:字節(jié)的清零與取反操作只能在累加器A中進(jìn)行,其他任何寄存器均無此功能?!?.3MCS-51單片機(jī)的指令系統(tǒng)三、邏輯運(yùn)算指令5累加器循環(huán)移位指令

RLA

RLCA不帶進(jìn)位位的左移:帶進(jìn)位位的左移:

RRA

RRCA不帶進(jìn)位位的右移:帶進(jìn)位位的右移:①累加器循環(huán)移位指令共4條,左移、右移各兩條,分別是“帶進(jìn)位位的”和“不帶進(jìn)位位的”。說明:②循環(huán)移位操作只能在累加器ACC中實(shí)現(xiàn),其他任何寄存器均無此功能?!?.3MCS-51單片機(jī)的指令系統(tǒng)四、控制轉(zhuǎn)移指令1無條件轉(zhuǎn)移AJMPaddr11;PC←(PC)+2,PC0~10←addr11(1)短轉(zhuǎn)移轉(zhuǎn)移范圍:短轉(zhuǎn)移指令的下一條指令所在的2KB空間。重要概念:PC當(dāng)前值所謂PC當(dāng)前值,是指指令取指完成以后的PC值,也就是緊靠當(dāng)前正在執(zhí)行的指令存儲(chǔ)的、向著地址增大方向的、下一條指令的地址?!?.3MCS-51單片機(jī)的指令系統(tǒng)四、控制轉(zhuǎn)移指令1無條件轉(zhuǎn)移(4)散轉(zhuǎn)移JMP@A+DPTR;PC←(PC)+1,PC←(A)+(DPTR)轉(zhuǎn)移范圍:理論上可以轉(zhuǎn)移到全部64KB程序空間。SJMPrel;PC←(PC)+2,PC←(PC)+

rel(3)相對(duì)轉(zhuǎn)移轉(zhuǎn)移范圍:以相對(duì)轉(zhuǎn)移指令的下一條指令為中心的256B,其中向高地址端127B,向低地址端128B。LJMPaddr16;PC←(PC)+3,PC←addr16(2)長轉(zhuǎn)移轉(zhuǎn)移范圍:全部64KB程序空間。四、控制轉(zhuǎn)移指令2條件轉(zhuǎn)移(1)累加器判零轉(zhuǎn)移§3.3MCS-51單片機(jī)的指令系統(tǒng)JZrel;PC←(PC)+2

;若(A)=0,則PC←(PC)+rel

;否則PC←(PC)

JNZrel;PC←(PC)+2

;若(A)≠0,則PC←(PC)+rel

;否則PC←(PC)+2各種顏色的PC:PC——指向當(dāng)前正在被執(zhí)行的指令;

PC——指向當(dāng)前正在被執(zhí)行的指令的下一條指令;

PC——指向執(zhí)行完當(dāng)前指令后將要執(zhí)行的那條指令;四、控制轉(zhuǎn)移指令2條件轉(zhuǎn)移(2)比較不相等轉(zhuǎn)移§3.3MCS-51單片機(jī)的指令系統(tǒng)CJNEA,direct,rel;PC←(PC)+3

;若(A)≠(direct),則PC←(PC)+rel

;否則PC←(PC)

CJNEA,#data,rel;PC←(PC)+3

;若(A)≠data,則PC←(PC)+rel

;否則PC←(PC)

CJNERn,#data,rel;PC←(PC)+3

;若(Rn)≠data,則PC←(PC)+rel

;否則PC←(PC)

CJNE@Ri,#data,rel;PC←(PC)+3

;若((Ri))≠data,則PC←(PC)+rel

;否則PC←(PC)四、控制轉(zhuǎn)移指令2條件轉(zhuǎn)移(3)減1不為零轉(zhuǎn)移§3.3MCS-51單片機(jī)的指令系統(tǒng)DJNZRn,rel;PC←(PC)+2

;Rn←(Rn)-1

;若(Rn)≠0,則PC←(PC)+rel

;否則PC←(PC)

DJNZdirect,rel;PC←(PC)+2

;direct←(direct)-1

;若(direct)≠0,則PC←(PC)+rel

;否則PC←(PC)+2四、控制轉(zhuǎn)移指令3調(diào)用與返回指令(1)調(diào)用指令§3.3MCS-51單片機(jī)的指令系統(tǒng)ACALLaddr11;PC←(PC)+2

;SP←(SP)+1,(SP)←(PC)7~0

;SP←(SP)+1,(SP)←(PC)15~8

;PC10~0←addr11短調(diào)用指令LCALLaddr16;PC←(PC)+2

;SP←(SP)+1,(SP)←(PC)7~0

;SP←(SP)+1,(SP)←(PC)15~8

;PC←addr16長調(diào)用指令四、控制轉(zhuǎn)移指令3調(diào)用與返回指令(1)調(diào)用指令§3.3MCS-51單片機(jī)的指令系統(tǒng)①調(diào)用指令調(diào)用的對(duì)象是子程序。②調(diào)用指令的控制范圍是有限的,即子程序的第一條指令所在的存儲(chǔ)單元必須在此控制范圍以內(nèi),否則調(diào)用指令將無法完成子程序的調(diào)用。③短調(diào)用指令的控制范圍:短調(diào)用指令的下一條指令所在的2KB程序存儲(chǔ)空間。④長調(diào)用指令的控制范圍:全部64KB程序存儲(chǔ)空間。即使用長調(diào)用指令時(shí),子程序可放在程序存儲(chǔ)器的任意位置。幾點(diǎn)說明⑤調(diào)用子程序運(yùn)行完,程序回到調(diào)用指令的下一條指令繼續(xù)執(zhí)行,這是通過PC當(dāng)前值入棧操作來實(shí)現(xiàn)的。四、控制轉(zhuǎn)移指令3調(diào)用與返回指令(2)返回指令§3.3MCS-51單片機(jī)的指令系統(tǒng)RET;PC←(PC)+1

;(PC)15~8←((SP)),SP←(SP)-1

;(PC)7~0←((SP)),SP←(SP)-1

子程序返回RETI;PC←(PC)+1

;(PC)15~8←((SP)),SP←(SP)-1

;(PC)7~0←((SP)),SP←(SP)-1

中斷返回說明:返回指令實(shí)質(zhì)上是兩次出棧操作,把調(diào)用指令壓入堆棧的PC當(dāng)前值重新裝入PC,從而實(shí)現(xiàn)從調(diào)用指令的下一條指令繼續(xù)執(zhí)行主程序。四、控制轉(zhuǎn)移指令4空操作指令§3.3MCS-51單片機(jī)的指令系統(tǒng)NOP;PC←(PC)+1說明:空操作指令占用一字節(jié)程序存儲(chǔ)器,執(zhí)行占用1個(gè)機(jī)器周期,除此以外沒有其他作用,通常被用作極短時(shí)間(μS級(jí))的延時(shí)。五、位操作指令1位傳送指令§3.3MCS-51單片機(jī)的指令系統(tǒng)MOVbit,C;bit←(Cy)

MOVC,bit;Cy←(bit)①C表示進(jìn)位位Cy,程序狀態(tài)字PSW的最高位。說明:②bit表示位地址,有三種表示方法,可位于兩個(gè)存儲(chǔ)區(qū)域。a)直接物理位地址;b)直接物理字節(jié)地址.第幾位c)特殊功能寄存器名.第幾位i)內(nèi)部RAM的位尋址區(qū),地址20H~2FH;ii)特殊功能寄存器的個(gè)別字節(jié)。五、位操作指令2位狀態(tài)設(shè)置指令§3.3MCS-51單片機(jī)的指令系統(tǒng)CLRC;Cy←0

CLRbit;bit←0(1)位清零指令SETBC;Cy←1

SETBbit;bit←1(2)位置位指令五、位操作指令3位邏輯操作指令§3.3MCS-51單片機(jī)的指令系統(tǒng)(1)位邏輯與ANLC,bit;Cy←(Cy)∧(bit)

ANLC,/bit;Cy←(Cy)∧(bit)(2)位邏輯或ORLC,bit;Cy←(Cy)∨(bit)

ORLC,/bit;Cy←(Cy)∨(bit)(3)位取反(邏輯非)CPLC;Cy←(Cy)

CPLbit;bit←(bit)與邏輯運(yùn)算指令有何區(qū)別??五、位操作指令4位控制轉(zhuǎn)移指令§3.3MCS-51單片機(jī)的指令系統(tǒng)(1)判Cy轉(zhuǎn)移JCrel;PC←(PC)+2

;若(Cy)=1,則PC←(PC)+rel

;否則PC←(PC)

JNCrel;PC←(PC)+2

;若(Cy)=0,則PC←(PC)+rel

;否則PC←(PC)+2五、位操作指令4位控制轉(zhuǎn)移指令§3.3MCS-51單片機(jī)的指令系統(tǒng)(2)判bit轉(zhuǎn)移JBbit,rel;PC←(PC)+3

;若(bit)=1,則PC←(PC)+rel

;否則PC←(PC)

JBCbit,rel;PC←(PC)+3

;若(bit)=1,則PC←(PC)+rel,bit←0

;否則PC←(PC)

JNBbit,rel;PC←(PC)+3

;若(bit)=0,則PC←(PC)+rel

;否則PC←(PC)+2一、匯編語言格式§3.4匯編語言程序設(shè)計(jì)①每條指令占一行;②

程序標(biāo)號(hào)、指令助記符、操作數(shù)1分別對(duì)齊;③

操作數(shù)之間以逗號(hào)隔開,不能加空格;示例程序:

MOVDPTR,#0020H

MOVXA,@DPTR

MOVB,A

INCDPTR

MOVXA,@DTPR

MULAB

INCDPTR

MOVX@DPTR,A

MOVA,B

INCDPTR

MOVX@DPTR,A二、偽指令介紹§3.4匯編語言程序設(shè)計(jì)1偽指令與指令的區(qū)別①作用時(shí)間不同:

偽指令在程序編譯的時(shí)候起作用;

指令在程序運(yùn)行的時(shí)候起作用。②有無指令碼不同:

偽指令不形成指令碼,因此不能被單片機(jī)執(zhí)行;

指令最終形成指令碼,存放在ROM中,被單片機(jī)執(zhí)行。偽指令的作用:編譯程序時(shí),為編譯軟件提供必要的信息。二、偽指令介紹§3.4匯編語言程序設(shè)計(jì)2常用偽指令(1)定位偽指令

[格式]ORG××××H[作用]規(guī)定緊隨其后的程序塊或數(shù)據(jù)塊的起始地址。

[舉例]ORG0000H(2)定義字節(jié)偽指令

[格式]標(biāo)號(hào):DBX1,X2,…,Xn[作用]Xn為字節(jié)數(shù)據(jù)或ASCII碼;把X1,X2,…,Xn從“標(biāo)號(hào)”指定的地址開始,依次連續(xù)存放。

[舉例]LABLE:DB03H,20,‘A’二、偽指令介紹§3.4匯編語言程序設(shè)計(jì)2常用偽指令(3)定義雙字節(jié)指令

[格式]標(biāo)號(hào):DWX1,X2,…,Xn[作用]Xn為雙字?jǐn)?shù)據(jù),把X1,X2,…,Xn從“標(biāo)號(hào)”指定的地址開始,依次連續(xù)存放;先存高8位,再存低8位。

[舉例]LABLE:DW2148H,2200H(4)預(yù)留存儲(chǔ)區(qū)偽指令

[格式]標(biāo)號(hào):DSn[作用]從“標(biāo)號(hào)”指定的地址開始預(yù)留n個(gè)字節(jié)存儲(chǔ)單元,既不存儲(chǔ)程序代碼,也不存儲(chǔ)數(shù)據(jù)。

[舉例]LABLE:DS3二、偽指令介紹§3.4匯編語言程序設(shè)計(jì)2常用偽指令(5)賦值偽指令

[格式]字符名稱EQU

地址/數(shù)據(jù)/Rn[作用]把“地址/數(shù)據(jù)”賦給“字符名稱”,通常寫在程序開始的地方,在其之后此字符名稱即作為指定的地址或數(shù)據(jù)使用。

[舉例]EOCEQUP3.2NUM1EQU30HNUM2EQUR6

(6)結(jié)束匯編偽指令

[格式]END[作用]寫在匯編程序的末尾,表示匯編語言源程序到此結(jié)束。三、程序設(shè)計(jì)概述§3.4匯編語言程序設(shè)計(jì)1程序設(shè)計(jì)的一般過程1

分析任務(wù)2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論