




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)的指令系統(tǒng)一、數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令主要負(fù)責(zé)把數(shù)據(jù)、地址或馬上數(shù)傳送到寄存器或存儲(chǔ)單元中。這類指令共有29條,可分為以下3大類:基本數(shù)據(jù)傳送指令,數(shù)據(jù)交換指令,棧操作指令。
執(zhí)行數(shù)據(jù)傳送指令時(shí),除以累加器A為目的操作數(shù)的指令會(huì)對(duì)奇偶標(biāo)志位P有影響外,其余指令執(zhí)行時(shí)均不會(huì)影響任何標(biāo)志位。
1.基本數(shù)據(jù)傳送指令
依據(jù)數(shù)據(jù)取自何方和傳到何方,MOV指令有著很多不同的形式。
(1)以累加器A為目的操作數(shù)類指令
這組指令的作用是把源操作數(shù)指向的內(nèi)容送到累加器A。有馬上數(shù)、直接、寄存器和寄存器間接尋址方式:
MOVA,#data;data→(A)
MOVA,direct;(direct)→(A)
MOVA,Ri;(Ri)→(A)
MOVA,@Rj;((Rj))→(A)
(2)以寄存器Ri為目的操作數(shù)的指令
這組指令的功能是把源操作數(shù)指定的內(nèi)容送到所選定的工作寄存器Ri中。有馬上、直接和寄存器尋址方式:
(3)以直接地址為目的操作數(shù)的指令
這組指令的功能是把源操作數(shù)指定的內(nèi)容送到由直接地址direct所選定的片內(nèi)RAM中。有馬上、直接、寄存器和寄存器間接4種尋址方式:
(4)以間接地址為目的操作數(shù)的指令
這組指令的功能是把源操作數(shù)指定的內(nèi)容送到以Rj中的內(nèi)容為地址的片內(nèi)RAM中。有馬上、直接和寄存器3種尋址方式
(5)查表指令
這組指令的功能是對(duì)存放于程序存儲(chǔ)器中的數(shù)據(jù)表格進(jìn)行查找傳送,使用變址尋址方式:
MOVCA,@A+DPTR;((A)+(DPTR))→(A)
MOVCA,@A+PC;((PC))+1→(PC),((A)+(PC))→(A)
(6)累加器A與片外數(shù)據(jù)存儲(chǔ)器RAM傳送指令
這組指令的作用是累加器A與片外RAM間的數(shù)據(jù)傳送。使用寄存器尋址方式:
MO@DPTR,A;(A)→((DPTR))
MOA,@DPTR;((DPTR))→(A)
MOA,@Rj;((Rj))→(A)
MO@Rj,A;(A)→((Rj))
(7)16位數(shù)據(jù)傳送指令
這條指令的功能是把16位常數(shù)送入數(shù)據(jù)指針寄存器。
MOVDPTR,#data16;dataH→(DPH),dataL→(DPL)
2.交換指令
MOV指令主要完成從一處到另一處的拷貝,XCH指令則可實(shí)現(xiàn)數(shù)據(jù)的雙向傳送。全部的操作都涉及到累加器A,可以把把累加器A中的內(nèi)容與源操作數(shù)所指的數(shù)據(jù)相互交換。
XCHA,direct;(A)←→(direct)
XCHA,Ri;(A)←→(Ri)
XCHA,@Rj;(A)←→((Rj))
XCHDA,@Rj;(A3-0)←→((Rj)3-0)
SWAPA;(A3-0)←→(A7-4)
3.入棧/出棧指令
這類指令的作用是把直接尋址單元的內(nèi)容傳送到堆棧指針SP所指的單元中,以及把SP所指單元的內(nèi)容送到直接尋址單元中。
⑴PUSH指令
堆棧的入棧指令,該指令可以把某片內(nèi)RAM單元(低128字節(jié))或某專用寄存器的內(nèi)容入棧。
PUSHdirect;(SP)+1→(SP),(direct)→(SP)
⑵POP指令
堆棧的出棧指令,該指令用于恢復(fù)某片內(nèi)RAM單元(低128字節(jié))或某專用寄存器的內(nèi)容。
POPdirect;(SP)→(direct),(SP)-1→(SP)
二、算術(shù)運(yùn)算指令在51系列單片機(jī)的指令系統(tǒng)中,供應(yīng)了完備的加、減、乘、除算術(shù)運(yùn)算指令及增量(加1)、減量(減1)運(yùn)算,可處理不帶符號(hào)或帶符號(hào)的8/16二進(jìn)制數(shù)。除加1和減1指令外,算術(shù)運(yùn)算指令會(huì)影響進(jìn)位、半進(jìn)位和溢出位三個(gè)標(biāo)志位。
1.不帶進(jìn)位的加法指令
這組指令的作用是把馬上數(shù),直接地址、工作寄存器及間接地址內(nèi)容與累加器A的內(nèi)容相加,運(yùn)算結(jié)果存在A中。
ADDA,#data;(A)+data→(A)
ADDA,direct;(A)+(direct)→(A)
ADDA,Ri;(A)+(Ri)→(A)
ADDA,@Rj;(A)+((Rj))→(A)
本組指令的執(zhí)行將影響標(biāo)志位AC、CY、OV、P。當(dāng)和的第3、7位有進(jìn)位時(shí),分別將AC,CY標(biāo)志位置位;否則復(fù)位。對(duì)于無(wú)符號(hào)數(shù),進(jìn)位標(biāo)志位CY=1,表示溢出;CY=0表示無(wú)溢出。帶符號(hào)數(shù)運(yùn)算的溢出取決于第6、7位,若這2位中有一位產(chǎn)生進(jìn)位,而另一位不產(chǎn)生進(jìn)位,則溢出標(biāo)志位OV置位,否則被復(fù)位。
2.帶進(jìn)位加法指令
這組指令的作用是把馬上數(shù),直接地址、工作寄存器及間接地址內(nèi)容與累加器A的內(nèi)容以及進(jìn)位位C相加,運(yùn)算結(jié)果存在A中。
本組指令執(zhí)行對(duì)標(biāo)志位AC、CY、OV、P的影響與ADD指令相同。
3.增量指令
這組指令的的功能均為原寄存器的內(nèi)容加1,結(jié)果送回原寄存器。這組指令共有直接、寄存器、寄存器間接尋址等尋址方式:
INCA;(A)+1→(A)
INCdirect;(direct)+1→(direct)
INCRi;(Rn)+1→(Ri)
INC@Rj;((Rj))+1→((Rj))
INCDPTR;(DPTR)+1→(DPTR)
增量指令不會(huì)對(duì)任何標(biāo)志有影響。
4.帶借位減法指令
這組指令包含馬上數(shù)、直接地址、間接地址及工作寄存器與累加器A連同借位位C內(nèi)容相減,結(jié)果送回累加器A中。
SUBBA,#data;(A)-data-(C)→(A)
SUBBA,direct;(A)-(direct)-(C)→(A)
SUBBA,Ri;(A)-(Ri)-(C)→(A)
SUBBA,@Rj;(A)-((Rj))-(C)→(A)
本指令執(zhí)行將影響標(biāo)志位AC、CY、OV、P。若第七位有借位,則將CY置位,否則CY復(fù)位。若第3位有錯(cuò)位,則置位幫助進(jìn)位標(biāo)志AC,否則AC復(fù)位。若第7和第6位中有一位需借位,而另一位不借位,則置位溢出標(biāo)志OV。
當(dāng)在進(jìn)行單字節(jié)或多字節(jié)減法前,不知道進(jìn)位標(biāo)志位CY的值,則應(yīng)在減法指令前先將CY復(fù)位清“0”。
5.減量指令
這組指令的作用是把所指的寄存器內(nèi)容減1,結(jié)果送回原寄存器,這組指令共有直接、寄存器、寄存器間接尋址等尋址方式:
DECA;(A)-1→(A)
DECdirect;(direct)-1→(direct)
DECRi;(Ri)-1→(Ri)
DEC@Rj;((Rj))-1→((Rj))
運(yùn)算結(jié)果不影響任何標(biāo)志位。
6.乘法指令
這條指令的作用是把累加器A和寄存器B中的8位無(wú)符號(hào)數(shù)相乘,所得到的是16位乘積,這個(gè)結(jié)果低8位存在累加器A,而高8位存在寄存器B中。
MULAB;(A)×(B)→(B)和(A)
乘法指令需要4個(gè)機(jī)器周期。
假如乘積大于255(0FFH),即B的內(nèi)容不為0時(shí),則置位溢出標(biāo)志位OV,否則OV復(fù)位。進(jìn)位標(biāo)志位CY總是復(fù)位為0。
7.除法指令
這條指令的作用是把累加器A的8位無(wú)符號(hào)整數(shù)除以寄存器B中的8位無(wú)符號(hào)整數(shù),所得到的商存在累加器A,而余數(shù)存在寄存器B中。
DIVAB;(A)÷(B)→(A)和(B)
除法指令需要4個(gè)機(jī)器周期。
本指令總是將CY和OV標(biāo)志位復(fù)位。當(dāng)除數(shù)(B中內(nèi)容)為00H時(shí),那么執(zhí)行結(jié)果將為不定值,則置位溢出標(biāo)志位OV。
8.十進(jìn)制調(diào)整指令
在進(jìn)行BCD碼運(yùn)算時(shí),這條指令總是跟在ADD或ADDC指令之后,其功能是將執(zhí)行加法運(yùn)算后存于累加器A中的結(jié)果進(jìn)行調(diào)整和修正。
DAA
三、規(guī)律運(yùn)算指令在51系列單片機(jī)的指令系統(tǒng)中供應(yīng)的規(guī)律運(yùn)算指令主要包括ANL(與),ORL(或),XRL(異或)等指令。
1.規(guī)律與指令A(yù)NL
這組指令的功能是在指出的變量之間以位為基礎(chǔ)的規(guī)律與操作。操作數(shù)有寄存器尋址、直接尋址、寄存器間接尋址和馬上尋址等尋址方式:
ANLA,#data;(A)∧data→(A)
ANLA,direct;(A)∧(direct)→(A)
ANLA,Ri;(A)∧(Ri)→(A)
ANLA,@Rj;(A)∧((Rj))→(A)
ANLdirect,#data;(direct)∧data→(direct)
ANLdirect,A;(direct)∧(A)→(A)
2.規(guī)律或指令ORL
這組指令的功能是在所指出的變量之間執(zhí)行以位為基礎(chǔ)的規(guī)律或操作,結(jié)果存到目的變量中去。操作數(shù)有馬上尋址、直接尋址、寄存器尋址和寄存器間接尋址方式:
3.規(guī)律異或指令XRL
這組指令的功能是在所指出的變量之間執(zhí)行以位為基礎(chǔ)的規(guī)律異或操作,結(jié)果存放到目的變量中去。操作數(shù)有馬上尋址、直接尋址、寄存器尋址和寄存器間接尋址方式:
4.循環(huán)移位指令
這4條指令的作用是將累加器中的內(nèi)容循環(huán)左或右移一位,后兩條指令是連同進(jìn)位位CY一起移位。
RLA;累加器A中的內(nèi)容左移一位。
RRA;累加器A中的內(nèi)容右移一位。
RLCA;累加器A中的內(nèi)容連同進(jìn)位位CY左移一位。
RRCA;累加器A中的內(nèi)容連同進(jìn)位位CY右移一位。
5.求反指令
這條指令將累加器中的內(nèi)容按位取反。
CPLA;累加器中的內(nèi)容按位取反。
6.清零指令
這條指令將累加器中的內(nèi)容清0。
CLRA;0→(A),累加器中的內(nèi)容清0。
四、位操作類指令MCS-51單片機(jī)內(nèi)部有一個(gè)布爾處理機(jī),對(duì)位地址空間具有豐富的位操作指令。
1.位傳送指令
這2條指令的功能是把由源操作數(shù)指出的布爾變量送到目的操作數(shù)指定的位中去。其中一個(gè)操作數(shù)必需為進(jìn)位標(biāo)志,另一個(gè)可以是任何直接尋址位。
MOVC,bit;bit→CY,某位數(shù)據(jù)送CY。
MOVbit,C;CY→bit,CY數(shù)據(jù)送某位。
本組指令不影響其他寄存器和標(biāo)志位。
2.位變量修改指令
這些指令對(duì)CY及可尋址位進(jìn)行置位或復(fù)位操作
CLRC;0→CY,復(fù)位CY。
CLRbit;0→bit,復(fù)位某一位。
SETBC;1→CY,置位CY。
SETBbit;1→bit,置位某一位。
本組指令不影響其他標(biāo)志。
3.位變量規(guī)律指令
位運(yùn)算都是規(guī)律運(yùn)算,有與、或、非三種指令
ANLC,bit;(CY)∧(bit)→CY
ANLC,/bit;(CY)∧()→CY
ORLC,bit;(CY)∨(bit)→CY
ORLC,/bit;(CY)∧()→CY
CPLC;()→CY
CPLbit;()→bit
4.位變量條件轉(zhuǎn)移指令
位變量條件轉(zhuǎn)移指令是以位的狀態(tài)作為實(shí)現(xiàn)程序轉(zhuǎn)移的推斷條件:
JCrel;(CY)=1轉(zhuǎn)移,(PC)+2+rel→PC,否則程序往下執(zhí)行,(PC)+2→PC。
JNCrel;(CY)=0轉(zhuǎn)移,(PC)+2+rel→PC,否則程序往下執(zhí)行,(PC)+2→PC。
JBbit,rel;位狀態(tài)為1轉(zhuǎn)移。
JNBbit,rel;位狀態(tài)為0轉(zhuǎn)移。
JBCbit,rel;位狀態(tài)為1轉(zhuǎn)移,并使該位清“0”。
五、掌握轉(zhuǎn)移指令一般狀況下指令是挨次執(zhí)行的逐條執(zhí)行的,但實(shí)際上程序不行能全部挨次執(zhí)行而常常需要轉(zhuǎn)變程序的執(zhí)行流程,常用的掌握轉(zhuǎn)移指令有:
1.無(wú)條件轉(zhuǎn)移指令
這組指令執(zhí)行完后,程序就會(huì)無(wú)條件轉(zhuǎn)移到指令所指向的地址上去。長(zhǎng)轉(zhuǎn)移指令訪問的程序存儲(chǔ)器空間為16地址64kB,肯定轉(zhuǎn)移指令訪問的程序存儲(chǔ)器空間為11位地址2kB空間。
LJMPaddr16;addr16→(PC)
AJMPaddr11;(PC)+2→(PC),addr11→(PC10-0)
SJMPrel;(PC)+2+rel→(PC)
JMP@A+DPTR;(A)+(DPTR)→(PC)
2.條件轉(zhuǎn)移指令
條件轉(zhuǎn)移指令是依某種特定條件轉(zhuǎn)移的指令。條件滿意時(shí)轉(zhuǎn)移(相當(dāng)于一條相對(duì)轉(zhuǎn)移指令),條件不滿意時(shí)則挨次執(zhí)行下面的指令。目的地址在下一條指令的起始地址為中心的256個(gè)字節(jié)范圍中(-128~+127)。當(dāng)條件滿意時(shí),先把PC指向指向下一條指令的第一個(gè)字節(jié)地址,再把有符號(hào)的相對(duì)偏移量加到PC上,計(jì)算出轉(zhuǎn)向地址。
JZrel;A=0,(PC)+2+rel→(PC)
JNZrel;A≠0,(PC)+2+rel→(PC)
3.比較不相等轉(zhuǎn)移指令
這組指令的功能是比較前面兩個(gè)操作數(shù)的大小。假如它們的值不相等則轉(zhuǎn)移。在PC指向下一條指令的起始地址后,通過把指令最終一個(gè)字節(jié)的有符號(hào)的相對(duì)偏移量加到PC上,并計(jì)算出轉(zhuǎn)向地址。操作數(shù)有寄存器尋址、直接尋址,寄存器間接尋址和馬上尋址等方式。
CJNEA,direct,rel;A≠(direct),(PC)+3+rel→(PC)
CJNEA,#data,rel;A≠data,(PC)+3+rel→(PC)
CJNERi,#data,rel;A≠data,(PC)+3+rel→(PC)
CJNE@Rj,#data,rel;A≠data,(PC)+3+rel→(PC)
4.減1不為0轉(zhuǎn)移指令
這組指令把源操作數(shù)減1,結(jié)果回送到源操作數(shù)中去,假如結(jié)果不為0則轉(zhuǎn)移,跳到標(biāo)號(hào)rel處執(zhí)行,等于0就執(zhí)行下一條指令。源操作數(shù)有寄存器尋址和直接尋址方式。該指令通常用于實(shí)現(xiàn)循環(huán)計(jì)數(shù)。
DJNZRi,rel;(Ri)-
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 融媒體驗(yàn)收檢查報(bào)告范文
- 人員提升效率報(bào)告范文
- 燃?xì)饩S修述職報(bào)告范文
- 浙江國(guó)企招聘2024浙江省臺(tái)州市市屬國(guó)企高層次人才招聘16人筆試參考題庫(kù)附帶答案詳解
- 二零二五年度理發(fā)店全國(guó)連鎖擴(kuò)張入股合作協(xié)議書
- 二零二五年度紅薯品牌授權(quán)與銷售合作協(xié)議
- 二零二五年度寵物寄養(yǎng)合同糾紛調(diào)解及賠償細(xì)則
- 二零二五年度房屋租賃合同(含游泳池)
- 2025年度航空航天器表面油漆加工合同
- 二零二五年度股權(quán)轉(zhuǎn)讓回購(gòu)稅務(wù)籌劃合同
- 中醫(yī)院中醫(yī)文化傳承制度
- 2024改性瀝青路面施工技術(shù)規(guī)范
- 建筑施工安全檢查標(biāo)準(zhǔn)JGJ59-2011
- GB/T 44399-2024移動(dòng)式金屬氫化物可逆儲(chǔ)放氫系統(tǒng)
- 急性中毒的診斷與治療新進(jìn)展課件
- 薛崗小學(xué)反邪教工作計(jì)劃
- 2022年高級(jí)維修電工(三級(jí))理論考試題庫(kù)(附答案)
- 中醫(yī)基礎(chǔ)理論題庫(kù)及答案 (一)
- HG∕T 3642-2016 水處理劑 丙烯酸-2-甲基-2-丙烯酰胺基丙磺酸類共聚物
- QCT1165-2022汽油乘用車炭罐用空氣濾清器
- DL5714-2014火力發(fā)電廠熱力設(shè)備及管道保溫防腐施工技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論