單片機(jī)單片機(jī)指令系統(tǒng)_第1頁
單片機(jī)單片機(jī)指令系統(tǒng)_第2頁
單片機(jī)單片機(jī)指令系統(tǒng)_第3頁
單片機(jī)單片機(jī)指令系統(tǒng)_第4頁
單片機(jī)單片機(jī)指令系統(tǒng)_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

單片機(jī)單片機(jī)指令系統(tǒng)

一條匯編語言指令中最多包含4個(gè)區(qū)段,如下所示:[標(biāo)號:]操作碼[操作數(shù)][;注釋]

4個(gè)區(qū)段之間要用分隔符分開:如果操作數(shù)有兩個(gè)以上,則在操作數(shù)之間要用逗號“,”隔開(乘法指令和除法指令除外)。標(biāo)號代表該指令所存放的第一個(gè)字節(jié)存儲(chǔ)單元的地址,故標(biāo)號又稱為“符號地址”。操作碼也稱“助記符”。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第1頁。單片機(jī)單片機(jī)指令系統(tǒng)1.單字節(jié)指令(49條)單字節(jié)指令格式由8位二進(jìn)制編碼表示,例如:CLRA→E4H2.雙字節(jié)指令(45條)雙字節(jié)指令格式由兩個(gè)字節(jié)組成,操作碼和操作數(shù),例如: MOVA,#10H→74H10H3.三字節(jié)指令(17條)三字節(jié)指令格式中,第一個(gè)字節(jié)為操作碼,后兩個(gè)字節(jié)為操作數(shù),例如: MOV40H,#30H→75H40H30H

從執(zhí)行時(shí)間看:單周期64條,雙周期45條,四周期2條。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第2頁。單片機(jī)單片機(jī)指令系統(tǒng)3.1尋址方式

所謂尋址方式,就是尋找操作數(shù)地址的方式,在用匯編語言編程時(shí),數(shù)據(jù)的存放、傳送、運(yùn)算都要通過指令來完成。編程者必須自始至終都要十分清楚操作數(shù)的位置,以及如何將它們傳送到適當(dāng)?shù)募拇嫫魅⑴c運(yùn)算。每一種計(jì)算機(jī)都具有多種尋址方式。尋址方式的多少是反映指令系統(tǒng)優(yōu)劣的主要指標(biāo)之一。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第3頁。單片機(jī)單片機(jī)指令系統(tǒng)

在MCS-51單片機(jī)指令系統(tǒng)中,有以下7種尋址方式:

(1)立即尋址;

(2)直接尋址;

(3)寄存器尋址;

(4)寄存器間接尋址;

(5)基址寄存器加變址寄存器間接尋址;

(6)相對尋址;

(7)位尋址。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第4頁。單片機(jī)單片機(jī)指令系統(tǒng)1.立即尋址立即尋址方式是指操作數(shù)包含在指令字節(jié)中。跟在指令操作碼后面的數(shù)就是參加運(yùn)算的數(shù),該操作數(shù)稱為立即數(shù)。立即數(shù)有一字節(jié)和二字節(jié)兩種可能,例如指令:MOVA,#3AHMOVDPTR,#0DFFFH

上述兩條指令均為立即尋址方式,第一條指令的功能是將立即數(shù)3AH送累加器A中,第二條指令的功能是將立即數(shù)0DFFFH送數(shù)據(jù)指針DPTR中(0DFH→DPH,0FFH→DPL)。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第5頁。單片機(jī)單片機(jī)指令系統(tǒng)2.直接尋址在指令中直接給出操作數(shù)的地址,這種尋址方式就屬于直接尋址方式。在這種方式中,指令的操作數(shù)部分直接是操作數(shù)的地址。在MCS-51單片機(jī)指令系統(tǒng)中,直接尋址方式中可以訪問3種存儲(chǔ)器空間:(1)內(nèi)部數(shù)據(jù)存儲(chǔ)器的低128個(gè)字節(jié)單元(00H~7FH)。

(2)特殊功能寄存器。特殊功能寄存器只能用直接尋址方式進(jìn)行訪問。

(3)位地址空間。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第6頁。單片機(jī)單片機(jī)指令系統(tǒng)

3.寄存器尋址在該尋址方式中,參加操作的數(shù)存放在寄存器里。寄存器包括8個(gè)工作寄存器R0~R7,累加器A,寄存器B、數(shù)據(jù)指針DPTR和布爾處理器的位累加器Cy。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第7頁。單片機(jī)單片機(jī)指令系統(tǒng)4.寄存器間接尋址指令中給出間接尋址寄存器,其內(nèi)容為操作數(shù)的地址。尋址內(nèi)部RAM區(qū)的數(shù)據(jù)時(shí),可使用寄存器R0、R1(、SP)作為地址指針;當(dāng)訪問外部RAM時(shí),可使用R0、R1及DPTR作為地址指針。寄存器間接尋址符號為“@”,例如:第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第8頁。單片機(jī)單片機(jī)指令系統(tǒng)

5.基址寄存器加變址寄存器間接尋址這種尋址方式用于訪問程序存儲(chǔ)器中的數(shù)據(jù)表格,它以基址寄存器DPTR或PC的內(nèi)容為基本地址,加上變址寄存器A的內(nèi)容作為操作數(shù)的地址,例如:MOVCA,@A+DPTRMOVCA,@A+PCJMP@A+DPTR;散轉(zhuǎn)指令

第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第9頁。單片機(jī)單片機(jī)指令系統(tǒng)6.相對尋址在MCS-51指令系統(tǒng)中設(shè)有轉(zhuǎn)移指令,分為直接轉(zhuǎn)移和相對轉(zhuǎn)移指令,在相對轉(zhuǎn)移指令中采用相對尋址方式。這種尋址方式是以PC的內(nèi)容為基本地址,加上指令中給定的偏移量作為轉(zhuǎn)移地址。指令中給出的偏移量是一個(gè)8位帶符號的常數(shù),可正可負(fù),其范圍為-128~+127。

7.位尋址該種尋址方式中,操作數(shù)是內(nèi)部RAM單元中某一位的信息。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第10頁。單片機(jī)單片機(jī)指令系統(tǒng)3.2指令系統(tǒng)3.2.1指令分類

按指令的功能,MCS-51指令系統(tǒng)可分為下列5類:(1)數(shù)據(jù)傳送;(2)算術(shù)運(yùn)算;(3)邏輯運(yùn)算;(4)位操作;(5)控制轉(zhuǎn)移。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第11頁。單片機(jī)單片機(jī)指令系統(tǒng)描述指令的一些符號的意義:

Rn——當(dāng)前選定的寄存器區(qū)中的8個(gè)工作寄存器R0~R7,

即n=0~7。

Ri——當(dāng)前選定的寄存器區(qū)中的2個(gè)寄存器R0、R1,i=0、1。

direct——8位內(nèi)部RAM單元的地址,它可以是一個(gè)內(nèi)部數(shù)據(jù)區(qū)RAM單元(00H~7FH)或特殊功能寄存器地址(I/O端口、控制寄存器、狀態(tài)寄存器80H~0FFH)。#data——指令中的8位常數(shù)。#data16——指令中的16位常數(shù)。

addr16——16位的目的地址,用于LJMP,LCALL指令,可指向64KB程序存儲(chǔ)器地址空間。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第12頁。單片機(jī)單片機(jī)指令系統(tǒng)

addr11——11位的目的地址,用于AJMP,ACALL指令。目的地址必須與下一條指令的第一個(gè)字節(jié)在同一個(gè)2KB程序存儲(chǔ)器地址空間之內(nèi)。

rel——8位帶符號的偏移量字節(jié),用于SJMP和所有條件轉(zhuǎn)移指令中。偏移量相對于下一條指令的第一個(gè)字節(jié)計(jì)算,在-128~+127范圍內(nèi)取值。

bit——內(nèi)部數(shù)據(jù)RAM或特殊功能寄存器中的可直接尋址位。

DPTR——數(shù)據(jù)指針,可用作16位的地址寄存器。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第13頁。單片機(jī)單片機(jī)指令系統(tǒng)A——累加器。B——寄存器,用于MUL和DIV指令中。C——進(jìn)位標(biāo)志或進(jìn)位位。@——間接尋址寄存器或基址寄存器的前綴,如@Ri,@DPTR。

/——位操作數(shù)的前綴,表示對該位取反。(X)——X中的內(nèi)容。((X))——由X尋址的單元中的內(nèi)容。←——箭頭左邊的內(nèi)容被箭頭右邊的內(nèi)容所代替。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第14頁。單片機(jī)單片機(jī)指令系統(tǒng)3.2.2數(shù)據(jù)傳送類指令圖3–1MCS-51傳送指令示意圖

第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第15頁。單片機(jī)單片機(jī)指令系統(tǒng)1.數(shù)據(jù)傳送到累加器A的指令

MOVA,R0MOVA,directMOVA,@RiMOVA,#data

這組指令的功能是:把源操作數(shù)的內(nèi)容送入累加器A。例如:MOVA,#10H,該指令執(zhí)行時(shí)將立即數(shù)10H送入累加器A中。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第16頁。單片機(jī)單片機(jī)指令系統(tǒng)2.數(shù)據(jù)傳送到工作寄存器Rn的指令

MOVRn,AMOVRn,directMOVRn,#data

這組指令的功能是:把源操作數(shù)的內(nèi)容送入當(dāng)前工作寄存器區(qū)的R0~R7中的某一個(gè)寄存器。指令中Rn在內(nèi)部數(shù)據(jù)存儲(chǔ)器中的地址由當(dāng)前的工作寄存器區(qū)選擇位RS1、RS0確定,可以是00H~07H、08H~0FH、10H~17H、18H~1FH。例如:MOVR0,A,若當(dāng)前RS1、RS0設(shè)置為00(即工作寄存器0區(qū)),執(zhí)行該指令時(shí),將累加器A中的數(shù)據(jù)傳送至工作寄存器R0(內(nèi)部RAM00H)單元中。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第17頁。單片機(jī)單片機(jī)指令系統(tǒng)3.數(shù)據(jù)傳送到內(nèi)部RAM單元或特殊功能寄存器SFR的指令

MOVdirect,AMOVdirect,RnMOVdirect,directMOVdirect,@RiMOVdirect,#dataMOV@Ri,AMOV@Ri,directMOV@Ri,#dataMOVDPTR,#data16第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第18頁。單片機(jī)單片機(jī)指令系統(tǒng)

這組指令的功能是:把源操作數(shù)的內(nèi)容送入內(nèi)部RAM單元或特殊功能寄存器。其中第三條指令和最后一條指令都是三字節(jié)指令。第三條指令的功能很強(qiáng),能實(shí)現(xiàn)內(nèi)部RAM之間、特殊功能寄存器之間或特殊功能寄存器與內(nèi)部RAM之間的直接數(shù)據(jù)傳送。最后一條指令是將16位的立即數(shù)送入數(shù)據(jù)指針寄存器DPTR。4.累加器A與外部數(shù)據(jù)存儲(chǔ)器之間的傳送指令

MOVXA,@DPTRMOVXA,@RiMOVX@DPTR,AMOVX@Ri,A第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第19頁。單片機(jī)單片機(jī)指令系統(tǒng)

這組指令是:在累加器A與外部數(shù)據(jù)存儲(chǔ)器RAM單元或I/O口之間進(jìn)行數(shù)據(jù)傳送,前兩條指令執(zhí)行時(shí),P3.7引腳上輸出RD有效信號,用作外部數(shù)據(jù)存儲(chǔ)器的讀選通信號;后兩條指令執(zhí)行時(shí),P3.6引腳上輸出WR有效信號,用作外部數(shù)據(jù)存儲(chǔ)器的寫選通信號。DPTR所包含的16位地址信息由P0(低8位)和P2(高8位)輸出,而數(shù)據(jù)信息由P0口傳送,P0口作分時(shí)復(fù)用的總線。由Ri作為間接尋址寄存器時(shí),P0口上分時(shí)輸出Ri指定的8位地址信息及傳輸8位數(shù)據(jù)。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第20頁。單片機(jī)單片機(jī)指令系統(tǒng)5.堆棧操作指令

PUSHdirectPOPdirect

在MCS-51單片機(jī)的內(nèi)部RAM中,可以設(shè)定一個(gè)先進(jìn)后出的區(qū)域,稱其為堆棧。在特殊功能寄存器中有一個(gè)堆棧指針SP,它指出棧頂?shù)奈恢?。進(jìn)棧指令的功能是:首先將堆棧指針SP的內(nèi)容加1,然后將直接地址所指出的內(nèi)容送入SP指出的內(nèi)部RAM單元;出棧指令的功能是:將SP所指出的內(nèi)部RAM單元的內(nèi)容送入由直接地址所指出的字節(jié)單元,接著將堆棧指針SP的內(nèi)容減1。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第21頁。單片機(jī)單片機(jī)指令系統(tǒng)

例如:進(jìn)入中斷服務(wù)子程序時(shí),把程序狀態(tài)寄存器PSW、累加器A、數(shù)據(jù)指針DPTR進(jìn)棧保護(hù)。設(shè)當(dāng)前SP為60H。則程序段

PUSHPSWPUSHACCPUSHDPLPUSHDPH執(zhí)行后,SP內(nèi)容修改為64H,而61H、62H、63H、64H單元中依次棧入PSW、A、DPL、DPH的內(nèi)容。當(dāng)中斷服務(wù)程序結(jié)束之前,如下程序段(SP保持64H不變)第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第22頁。單片機(jī)單片機(jī)指令系統(tǒng)

POPDPHPOPDPLPOPACCPOPPSW執(zhí)行之后,SP內(nèi)容修改為60H,而64H、63H、62H、61H單元中的內(nèi)容依次彈出到DPH、DPL、A、PSW中。

MCS-51提供一個(gè)向上升的堆棧,因此SP設(shè)置初值時(shí)要充分考慮堆棧的深度,要留出適當(dāng)?shù)膯卧臻g,滿足堆棧的使用。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第23頁。單片機(jī)單片機(jī)指令系統(tǒng)6.程序存儲(chǔ)器內(nèi)容送累加器

MOVCA,@A+PCMOVCA,@A+DPTR

這是兩條很有用的查表指令,可用來查找存放在程序存儲(chǔ)器中的常數(shù)表格。第一條指令是以PC作為基址寄存器,A的內(nèi)容作為無符號數(shù)和PC的內(nèi)容(下一條指令的起始地址)相加后得到一個(gè)16位的地址,并將該地址指出的程序存儲(chǔ)器單元的內(nèi)容送到累加器A。這條指令的優(yōu)點(diǎn)是不改變特殊功能寄存器和PC的狀態(tài),只要根據(jù)A的內(nèi)容就可以取出表格中的常數(shù)。缺點(diǎn)是表格只能放在該條查表指令后面的256個(gè)單元之中,表格的大小受到限制,而且表格只能被一段程序所利用。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第24頁。單片機(jī)單片機(jī)指令系統(tǒng)

第二條指令是以DPTR作為基址寄存器,累加器A的內(nèi)容作為無符號數(shù)與DPTR內(nèi)容相加,得到一個(gè)16位的地址,并把該地址指出的程序存儲(chǔ)器單元的內(nèi)容送到累加器A。這條指令的執(zhí)行結(jié)果只與指針DPTR及累加器A的內(nèi)容有關(guān),與該指令存放的地址無關(guān),因此,表格的大小和位置可以在64KB程序存儲(chǔ)器中任意安排,并且一個(gè)表格可以為各個(gè)程序塊所共用。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第25頁。單片機(jī)單片機(jī)指令系統(tǒng)

7.字節(jié)交換指令

XCHA,RnXCHA,@RiXCHA,directXCHDA,@RiSWAPA

前三條指令是將累加器A的內(nèi)容和源操作數(shù)內(nèi)容相互交換;后兩條指令是半字節(jié)交換指令,最后一條指令是將累加器A的高4位與低4位之間進(jìn)行交換,而另外一條指令是將累加器A的低4位內(nèi)容和(Ri)所指出的內(nèi)部RAM單元的低4位內(nèi)容相互交換。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第26頁。單片機(jī)單片機(jī)指令系統(tǒng)3.2.3算術(shù)運(yùn)算類指令一、加法指令1.普通加法指令

ADDA,RnADDA,directADDA,@RiADDA,#data第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第27頁。單片機(jī)單片機(jī)指令系統(tǒng)例如:120和100之和為220,顯然大于127,相加時(shí)011110001200110010010011011100220+符號位(最高位)由0變1,兩個(gè)正數(shù)相加結(jié)果變負(fù),實(shí)際上它是和數(shù)的最高位,符號位移入了進(jìn)位標(biāo)志,此時(shí)位6有進(jìn)位而位7無進(jìn)位,置位溢出標(biāo)志OV,結(jié)果溢出。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第28頁。單片機(jī)單片機(jī)指令系統(tǒng)

同樣,-120和-100相加,結(jié)果應(yīng)為-220,顯然小于-128,相加時(shí)10001000-12010011100-100+100100100-220

符號位由1變?yōu)?,兩個(gè)負(fù)數(shù)相加結(jié)果變?yōu)檎龜?shù),這是因?yàn)榉栁灰迫脒M(jìn)位標(biāo)志,位6無進(jìn)位而位7有進(jìn)位,置位溢出標(biāo)志OV,由此可判斷結(jié)果溢出。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第29頁。單片機(jī)單片機(jī)指令系統(tǒng)2.帶進(jìn)位加法指令

ADDCA,RnADDCA,directADDCA,@RiADDCA,#data

這組指令的功能與普通加法指令類似,唯一的不同之處是,在執(zhí)行加法時(shí),還要將上一次進(jìn)位標(biāo)志Cy的內(nèi)容也一起加進(jìn)去,對于標(biāo)志位的影響也與普通加法指令相同。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第30頁。單片機(jī)單片機(jī)指令系統(tǒng)

3.增量指令

INCAINCRnINCdirectINC@RiINCDPTR

這組指令的功能是:將指令中所指出操作數(shù)的內(nèi)容加1。若原來的內(nèi)容為0FFH,則加1后將產(chǎn)生溢出,使操作數(shù)的內(nèi)容變成00H,但不影響任何標(biāo)志。最后一條指令是對16位的數(shù)據(jù)指針寄存器DPTR執(zhí)行加1操作,指令執(zhí)行時(shí),先對低8位指針DPL的內(nèi)容加1,當(dāng)產(chǎn)生溢出時(shí)就對高8位指針DPH加1,但不影響任何標(biāo)志。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第31頁。單片機(jī)單片機(jī)指令系統(tǒng)4.十進(jìn)制調(diào)整指令

DAA

這條指令對累加器A參與的BCD碼加法運(yùn)算所獲得的8位結(jié)果進(jìn)行十進(jìn)制調(diào)整,使累加器A中的內(nèi)容調(diào)整為二位壓縮型BCD碼的數(shù)。使用時(shí)必須注意,它只能跟在加法指令之后,不能對減法指令的結(jié)果進(jìn)行調(diào)整,且其結(jié)果不影響溢出標(biāo)志位。執(zhí)行該指令時(shí),判斷A中的低4位是否大于9和輔助進(jìn)位標(biāo)志AC是否為“1”,若兩者有一個(gè)條件滿足,則低4位加6操作;同樣,A中的高4位大于9或進(jìn)位標(biāo)志Cy為“1”兩者有一個(gè)條件滿足時(shí),高4位加6操作。例如:有兩個(gè)BCD數(shù)36與45相加,結(jié)果應(yīng)為BCD碼81,程序如下:第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第32頁。單片機(jī)單片機(jī)指令系統(tǒng)MOVA,#36HADDA,#45HDAA

這段程序中,第一條指令將立即數(shù)36H(BCD碼36)送入累加器A;第二條指令進(jìn)行如下加法:00110110360100010145011110117B0000011006++1000000181得結(jié)果7BH;第三條指令對累加器A進(jìn)行十進(jìn)制調(diào)整,低4位(為0BH)大于9,因此要加6,得調(diào)整的BCD碼81。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第33頁。單片機(jī)單片機(jī)指令系統(tǒng)

二、減法指令

1.帶進(jìn)位減法指令

SUBBA,RnSUBBA,directSUBBA,@RiSUBBA,#data

這組指令的功能是:將累加器A的內(nèi)容與第二操作數(shù)及進(jìn)位標(biāo)志相減,結(jié)果送回到累加器A中。在執(zhí)行減法過程中,如果位7(D7)有借位,則進(jìn)位標(biāo)志Cy置“1”,否則清“0”;如果位3(D3)有借位,則輔助進(jìn)位標(biāo)志AC置“1”,否則清“0”;如位6有借位而位7沒有借位,或位7有借位而位6沒有借位,則溢出標(biāo)志OV置“1”,否則清“0”。若要進(jìn)行不帶借位的減法操作,則必須先將Cy清“0”。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第34頁。單片機(jī)單片機(jī)指令系統(tǒng)

2.減1指令

DECADECRnDECdirectDEC@Ri

這組指令的功能是:將指出的操作數(shù)內(nèi)容減1。如果原來的操作數(shù)為00H,則減1后將產(chǎn)生下溢出,使操作數(shù)變成0FFH,但不影響任何標(biāo)志。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第35頁。單片機(jī)單片機(jī)指令系統(tǒng)

三、乘法指令

乘法指令完成單字節(jié)的乘法,只有一條指令:MULAB

這條指令的功能是:將累加器A的內(nèi)容與寄存器B的內(nèi)容相乘,乘積的低8位存放在累加器A中,高8位存放于寄存器B中。如果乘積超過0FFH,則溢出標(biāo)志OV置“1”,否則清“0”。進(jìn)位標(biāo)志Cy總是被清“0”。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第36頁。單片機(jī)單片機(jī)指令系統(tǒng)

四、除法指令

除法指令完成單字節(jié)的除法,只有一條指令:DIVAB

這條指令的功能是:將累加器A中的內(nèi)容除以寄存器B中的8位無符號整數(shù),所得商的整數(shù)部分存放在累加器A中,余數(shù)部分存放在寄存器B中,清“0”進(jìn)位標(biāo)志Cy和溢出標(biāo)志OV。若原來B中的內(nèi)容為0,則執(zhí)行該指令后A與B中的內(nèi)容不定,并將溢出標(biāo)志OV置“1”,在任何情況下,進(jìn)位標(biāo)志Cy總是被清“0”。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第37頁。單片機(jī)單片機(jī)指令系統(tǒng)3.2.4邏輯運(yùn)算類指令

一、簡單邏輯操作指令

CLRA;對累加器A清“0”CPLA;對累加器A按位取反

RLA;累加器A的內(nèi)容向左環(huán)移1位

RLCA;累加器A的內(nèi)容帶進(jìn)位標(biāo)志位向左環(huán)移1位

RRA;累加器A的內(nèi)容向右環(huán)移1位

RRCA;累加器A的內(nèi)容帶進(jìn)位標(biāo)志位向右環(huán)移1位這組指令的功能是:對累加器A的內(nèi)容進(jìn)行簡單的邏輯操作。除了帶進(jìn)位標(biāo)志位的移位指令外,其它都不影響Cy,AC,OV等標(biāo)志。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第38頁。單片機(jī)單片機(jī)指令系統(tǒng)

二、邏輯與指令

ANLA,RnANLA,directANLA,@RiANLA,#dataANLdirect,AANLdirect,#data

這組指令的功能是:將兩個(gè)操作數(shù)的內(nèi)容按位進(jìn)行邏輯與操作,并將結(jié)果送回目的操作數(shù)的單元中。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第39頁。單片機(jī)單片機(jī)指令系統(tǒng)

三、邏輯或指令ORLA,RnORLA,directORLA,@RiORLA,#dataORLdirect,AORLdirect,#data

這組指令的功能是:將兩個(gè)操作數(shù)的內(nèi)容按位進(jìn)行邏輯或操作,并將結(jié)果送回目的操作數(shù)的單元中。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第40頁。單片機(jī)單片機(jī)指令系統(tǒng)

四、邏輯異或指令

XRLA,RnXRLA,directXRLA,@RiXRLA,#dataXRLdirect,AXRLdirect,#data

這組指令的功能是:將兩個(gè)操作數(shù)的內(nèi)容按位進(jìn)行邏輯異或操作,并將結(jié)果送回到目的操作數(shù)的單元中。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第41頁。單片機(jī)單片機(jī)指令系統(tǒng)3.2.5控制轉(zhuǎn)移指令

控制轉(zhuǎn)移指令共有17條,不包括按布爾變量控制程序轉(zhuǎn)移指令(見表3.5)。其中有64KB范圍內(nèi)的長調(diào)用、長轉(zhuǎn)移指令;有2KB范圍內(nèi)的絕對調(diào)用和絕對轉(zhuǎn)移指令;有全空間的長相對轉(zhuǎn)移及一頁范圍內(nèi)的短相對轉(zhuǎn)移指令;還有多種條件轉(zhuǎn)移指令。由于MCS-51提供了較豐富的控制轉(zhuǎn)移指令,因此在編程上相當(dāng)靈活方便。這類指令用到的助記符共有10種:AJMP、LJMP、SJMP、JMP、ACALL、LCALL、JZ、JNZ、CJNE、DJNZ。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第42頁。單片機(jī)單片機(jī)指令系統(tǒng)一、無條件轉(zhuǎn)移指令1.短跳轉(zhuǎn)指令

AJMPaddr11

這是2KB范圍內(nèi)的無條件跳轉(zhuǎn)指令,執(zhí)行該指令時(shí),先將PC+2,然后將addr11送入PC10~PC0,而PC15~PC11保持不變。這樣得到跳轉(zhuǎn)的目的地址。需要注意的是,目標(biāo)地址與AJMP后面一條指令的第一個(gè)字節(jié)必須在同一個(gè)2KB區(qū)域的存儲(chǔ)器區(qū)內(nèi)。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第43頁。單片機(jī)單片機(jī)指令系統(tǒng)

2.相對轉(zhuǎn)移指令

SJMPrel

執(zhí)行該指令時(shí),先將PC+2,再把指令中帶符號的偏移量加到PC上,得到跳轉(zhuǎn)的目標(biāo)地址送入PC。

3.長跳轉(zhuǎn)指令

LJMPaddr16

執(zhí)行該指令時(shí),將16位目標(biāo)地址addr16

裝入PC,程序無條件轉(zhuǎn)向指定的目標(biāo)地址。轉(zhuǎn)移的目標(biāo)地址可以在64KB程序存儲(chǔ)器地址空間的任何地方,不影響任何標(biāo)志。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第44頁。單片機(jī)單片機(jī)指令系統(tǒng)4.相對跳轉(zhuǎn)指令

JMP@A+DPTR

執(zhí)行該指令時(shí),把累加器A中的8位無符號數(shù)與數(shù)據(jù)指針中的16位數(shù)相加,結(jié)果作為下條指令的地址送入PC,不改變累加器A和數(shù)據(jù)指針DPTR的內(nèi)容,也不影響標(biāo)志。利用這條指令能實(shí)現(xiàn)程序的散轉(zhuǎn)。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第45頁。單片機(jī)單片機(jī)指令系統(tǒng)

二、條件轉(zhuǎn)移指令

JZrel;(A)=0轉(zhuǎn)移

JNZrel;(A)≠0轉(zhuǎn)移這類指令是依據(jù)累加器A的內(nèi)容是否為0的條件轉(zhuǎn)移指令。條件滿足時(shí)轉(zhuǎn)移(相當(dāng)于一條相對轉(zhuǎn)移指令),條件不滿足時(shí)則順序執(zhí)行下面一條指令。轉(zhuǎn)移的目標(biāo)地址在以下一條指令的起始地址為中心的256個(gè)字節(jié)范圍之內(nèi)(-128~+127)。當(dāng)條件滿足時(shí),PC←(PC)+N+rel,其中(PC)為該條件轉(zhuǎn)移指令的第一個(gè)字節(jié)的地址,N為該轉(zhuǎn)移指令的字節(jié)數(shù)(長度),本轉(zhuǎn)移指令N=2。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第46頁。單片機(jī)單片機(jī)指令系統(tǒng)

三、比較轉(zhuǎn)移指令

在MCS-51中沒有專門的比較指令,但提供了下面4條比較不相等轉(zhuǎn)移指令:CJNEA,direct,relCJNEA,#data,relCJNERn,#data,relCJNE@Ri,#data,rel

這組指令的功能是:比較前面兩個(gè)操作數(shù)的大小,如果它們的值不相等則轉(zhuǎn)移。轉(zhuǎn)移地址的計(jì)算方法與上述兩條指令相同。如果第一個(gè)操作數(shù)(無符號整數(shù))小于第二個(gè)操作數(shù),則進(jìn)位標(biāo)志Cy置“1”,否則清“0”,但不影響任何操作數(shù)的內(nèi)容。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第47頁。單片機(jī)單片機(jī)指令系統(tǒng)

四、減1不為0轉(zhuǎn)移指令DJNZRn,relDJNZdirect,rel

這兩條指令把源操作數(shù)減1,結(jié)果回送到源操作數(shù)中去,如果結(jié)果不為0則轉(zhuǎn)移(轉(zhuǎn)移地址的計(jì)算方法同前)。該指令不影響標(biāo)志位。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第48頁。單片機(jī)單片機(jī)指令系統(tǒng)

五、調(diào)用及返回指令

在程序設(shè)計(jì)中,通常把具有一定功能的公用程序段編制成子程序,當(dāng)主程序需要使用子程序時(shí)用調(diào)用指令,而在子程序的最后安排一條子程序返回指令,以便執(zhí)行完子程序后能返回主程序繼續(xù)執(zhí)行。1.絕對調(diào)用指令

ACALLaddr11

這是一條2KB范圍內(nèi)的子程序調(diào)用指令。所用的子程序的入口地址必須與ACALL下面一條指令的第一個(gè)字節(jié)在同一個(gè)2KB區(qū)域的存儲(chǔ)器區(qū)內(nèi)。第3章、51單片機(jī)指令系統(tǒng)單片機(jī)單片機(jī)指令系統(tǒng)全文共56頁,當(dāng)前為第49頁。單片機(jī)單片機(jī)指令系統(tǒng)

2.長調(diào)用指令

LCALLaddr16

這條指令可以調(diào)用64KB范圍內(nèi)任何地方的子程序。指令執(zhí)行后不影響任何標(biāo)志。3.子程序返回指令

RET

這條指令的功能是:恢復(fù)斷點(diǎn),使程序返回主程序繼續(xù)執(zhí)行。

4.中斷返回指令

RETI

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論