




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1.2MCS-51單片機指令系統(tǒng)MCS-51單片機指令系統(tǒng)特點(1)指令執(zhí)行時間快。(2)指令短,約有一半的指令為單字節(jié)指令。(3)用一條指令即可實現(xiàn)2個一字節(jié)的相乘或相除。(4)具有豐富的位操作指令。(5)可直接用傳送指令實現(xiàn)端口的輸入輸出操作。1.2.1MCS-51指令系統(tǒng)的分類、格式及一般說明1.2.1.1指令分類 數(shù)據(jù)傳遞與交換算術運算邏輯運算程序轉(zhuǎn)移布爾處理操作(位操作指令)1.2.1.2指令格式在MCS-51指令中,一般指令主要由操作碼、操作數(shù)組成。(1)操作碼指明執(zhí)行什么性質(zhì)和類型的操作。例如,數(shù)的傳送、加法、減法等。(2)操作數(shù)指明操作的數(shù)本身或者是操作數(shù)所在的地址。(3)指定操作結果存放的地址。1.2.1.3指令描述符號介紹
Rn——當前選中的寄存器區(qū)中的8個工作寄存器R0~R7(n=0~7)。Ri——當前選中的寄存器區(qū)中的2個工作寄存器R0、R1(i=0,1)。direct—8位的內(nèi)部數(shù)據(jù)存儲器單元中的地址。#data——包含在指令中的8位常數(shù)。#data16——包含在指令中的16位常數(shù)。addr16——16位目的地址。addr11——11位目的地址。rel——8位帶符號的偏移字節(jié),簡稱偏移量。DPTR——數(shù)據(jù)指針,可用作16位地址寄存器指令描述符號介紹bit——內(nèi)部RAM或?qū)S眉拇嫫髦械闹苯訉ぶ肺?。A——累加器。B——專用寄存器,用于乘法和除法指令中。C——進位標志或進位位,或布爾處理機中的累加器。@——間址寄存器或基址寄存器的前綴,如@Ri,@DPTR。/——位操作數(shù)的前綴,表示對該位操作數(shù)取反,如/bit?!痢瑑?nèi)RAM的直接地址或寄存器。(×)——由×尋址的單元中的內(nèi)容。——箭頭左邊的內(nèi)容被箭頭右邊的內(nèi)容所代替1.2.2分類指令1.2.2.1數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令共28條,是將源操作數(shù)送到目的操作數(shù)。指令執(zhí)行后,源操作數(shù)不變,目的操作數(shù)被源操作數(shù)取代。數(shù)據(jù)傳送類指令用到的助記符有MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP8種。源操作數(shù)可采用寄存器、寄存器間接、直接、立即、變址5種尋址方式尋址,目的操作數(shù)可以采用寄存器、寄存器間接、直接尋址3種尋址方式。1.以A為目的操作數(shù)(機器碼)MOVA,Rn ;A←Rn,(A)=(Rn)MOVA,direct ;A←(direct),(A)=(direct)MOVA,#data ;A←#data,(A)=#dataMOVA,@Ri(重點);A←(Ri),(A)=((Ri))以Ri中的內(nèi)容為地址,取該地址的內(nèi)容送給A。注意:是from、copy操作,2.以Rn為目的操作數(shù)
MOVRn,A ;Rn←(A)MOVRn,direct ;Rn←(direct)MOVRn,#data ;Rn←#data如MOVR6,#45H注意:Rn為R0—R73.以直接地址為目的操作數(shù)MOVdirect,A ;direct←(A)MOVdirect,@Ri;direct←((Ri))MOVdirect,#data;direct←#dataMOVdirect,Rn ;direct←(Rn)MOVdirect1,direct2 ;direct1←(direct2)如:MOV30H,56H4.以間接地址為目的操作數(shù)MOV@Ri,A ;(Ri)←(A)MOV@Ri,direct ;(Ri)←(direct)MOV@Ri,#data ;(Ri)←#data以Ri的內(nèi)容為地址,把#data的送入該單元中。例如:設(30H)=6FH,R1=40H,(40H)=26H執(zhí)行MOV@R1,30H后,30H單元中數(shù)據(jù)取出送入R1間接尋址的40H單元,(40H)=6FH,而不是26H=6FH.5.以DPTR為目的操作數(shù)MOVDPTR,#data16;DPTR←#data16例如執(zhí)行MOVDPTR,#2000H后,(DPTR)=2000H。注意:其他MOV指令均為1字節(jié)數(shù)。直接地址direct累加器A直接地址direct間接地址@Ri寄存器Rn立即數(shù)#data寄存器DPTR6.訪問外部數(shù)據(jù)RAMMOVXA,@DPTR ;A←(DPTR)MOVX@DPTR,A ;(DPTR)←AMOVXA,@Ri ;A←(P2Ri)MOVX@Ri,A ;(P2Ri)←A特點:雙向傳送,必須由A傳送,外地址由DPTR及P2Ri確定把外部ram單元3000h的內(nèi)容寫入A中(1)MOVDPTR,#3000HMOVXA,@DPTR(2)MOVP2,#30HMOVR1,#00HMOVXA,@R1(3)MOVXA,@3000H(錯)7.讀程序存儲器
MOVCA,@A+DPTR ;A←((A)+(DPTR))MOVCA,@A+PC ;A←((A)+(PC))注意:只有對ROM的讀(無寫)指令,PC為當前指令所在ROM空間的地址+1例如已知A=30H,DPTR=3000H,程序存儲器單元(3030H)=50H,執(zhí)行MOVCA,@A+DPTR后例如MOVCA,@A+PC存在ROM空間1203H,(A)=30H,(A)+(PC)=1233H,(A)=8.數(shù)據(jù)交換
字節(jié)交換XCHA,Rn ;A<=>RnXCHA,direct ;A<=>(direct)XCHA,@Ri ;A<=>(Ri)如:XCHA,30H ;設(A)=98H,(30H)=07H結果(A)=,(30H)=半字節(jié)交換(低4位互換)XCHDA,@Ri ;A0~3<=>(Ri)0~3SWAPA ;A0~3<=>A4~7如:設(A)=98H;SWAPA ;(A)=89H9.堆棧操作(難點)所謂堆棧是在片內(nèi)RAM中按“先進后出,后進先出”原則設置的專用存儲區(qū)。數(shù)據(jù)的進棧出棧由指針SP統(tǒng)一管理。隊列:先進先出的存儲結構管理。堆棧的操作有如下兩條專用指令:
PUSHdirect;SP←(SP)+1,(SP)←(direct)POP direct ;direct←((SP)),SP←(SP)-1堆棧指令主要用于子程序和數(shù)據(jù)保護,保證程序的正常執(zhí)行。PUSH進棧指令執(zhí)行過程片內(nèi)RAM30H11H10HSP××片內(nèi)RAM50H40H11H10HSP××40H30H片內(nèi)RAM50H40H11H10H50H××SP30H片內(nèi)RAM40H11H10H34H××SP30H34H34H××××執(zhí)行前執(zhí)行前執(zhí)行前PUSH指令后執(zhí)行POP指令后【例1】將片內(nèi)RAM30H單元與40H單元中的內(nèi)容互換。方法1(直接地址傳送法):MOV 31H,30HMOV 30H,40HMOV 40H,31HSJMP $方法2(間接地址傳送法):MOV R0,#40HMOV R1,#30HMOV A,@R0MOV B,@R1MOV @R1,AMOV @R0,BSJMP $方法3(字節(jié)交換傳送法):MOV A,30HXCH A,40HMOV 30H,ASJMP $方法4(堆棧傳送法):PUSH 30HPUSH 40HPOP 30HPOP 40HSJMP $1.2.2.2算術運算類指令1.加法指令(對PSW的影響)ADDA,Rn ;A←(A)+(Rn)ADDA,direct ;A←(A)+(direct)ADDA,@Ri ;A←(A)+((Ri))ADDA,#data ;A←(A)+#data注意:加法操作在A中完成。并對PSW中的CY,AC,OV,P產(chǎn)生影響。如:ADDA,#28H;設(A)=B9H則結果(A)=E1H;CY=0,AC=1,OV=1,P=02.帶進位加指令
ADDCA,Rn ;A←(A)+(Rn)+(C)ADDCA,direct ;A←(A)+(direct)+(C)ADDCA,@Ri ;A←(A)+((Ri))+(C)ADDCA,#data ;A←(A)+data+(C)C為來自PSW狀態(tài)寄存器中的進位位C,是運算前的C,運算后的C不參加運算。例如,設(A)=20H,(R0)=21H,(C)=1,執(zhí)行指令ADDCA,R0后,A=42H。3.帶借位減指令SUBBA,Rn ;A←(A)–(Rn)–(C)SUBBA,direct ;A←(A)-(direct)-(C)SUBBA,@Ri ;A←(A)–((Ri))-(C)SUBBA,#data ;A←(A)-#data–(C)注意:單片機沒有不帶借位的減法??梢韵仁筩=0后再使用SUBB指令例如,設A=39H,R0=20H,(20H)=32H,C=1,4乘法指令MULAB ;BA←(A)×(B)A和B中各存放一個8位無符號數(shù),指令執(zhí)行后,16位乘積的高8位在B中,低8位存A中。例如,A=30H,B=60H,執(zhí)行MULAB后,A=00H,B=12H注意MUL對PSW的影響.5.除法指令
DIVAB ;(A)÷(B)→AB,商在A中,余數(shù)在B中A和B中各存放一個8位無符號數(shù),A放被除數(shù),B放除數(shù)。指令執(zhí)行后,A中存放商,B中存入余數(shù)。若B=00H,則指令執(zhí)行后OV=1,A與B不變。例如,A=30H,B=07H,執(zhí)行DIVAB后,A=06H,B=06H。6.加1指令
INCA ;A←(A)+1INCRn ;Rn←(Rn)+1INCdirect ;direct←((direct))+1INC@Ri ;(Ri)←((Ri))+1INCDPTR ;DPTR←(DPTR)+1例如,(30H)=22H,執(zhí)行INC30H后,(30H)=23H。7.減1指令
DECA ;A←(A)-1DECRn ;Rn←(Rn)-1DECdirect ;direct←(direct)-1DEC@Ri ;(Ri)←((Ri))-1例如,R0=30H,(30H)=22H,執(zhí)行DEC@R0后,(30H)=21H。注意:沒有DECDPTR的指令??捎肈ECDPL指令8.十進制調(diào)整指令DAA;把A中按二進制相加的結果調(diào)整成按BCD碼相加的結果例如,A=65BCD,B=78BCD,C=0,執(zhí)行下列語句ADD A,B;ADD后,DA A前不能使用對C或AC有影響的指令。DA A;A=43BCD,C=1。DA操作核心:(1)對低半字節(jié)>09HORAC=1的數(shù)進行+06H的操作。
(2)對高字節(jié)>90HORC=1的數(shù)進行+60H的操作?!纠?】試把存放在R1R2和R3R4中的兩個16位數(shù)相加,結果存于R5R6中。解:參考程序如下:MOV A,R2 ;取第一個數(shù)的低8位ADD A,R4 ;兩數(shù)的低8位相加MOV R6,A ;保存和的低8位MOV A,R1 ;取第一個數(shù)的高8位ADDC A,R3 ;兩數(shù)的高8位相加,并把低8位相加時的進位位加進來MOV R5,A ;把相加的高8位存入R5寄存器中SJMP$1.2.2.3邏輯運算與循環(huán)類指令1.“與”操作指令ANLA,#data;(A)=(A)∧#dataANLA,direct;(A)=(A)∧(direct)ANLA,Rn;(A)=(A)∧(Rn)ANLA,@Ri;(A)=(A)∧((Ri))ANLdirect,#data;(direct)=(direct)∧#dataANLdirect1,direct2;(direct1)=(direct1)∧(direct2)2.“或”操作指令
ORLA,#data;(A)=(A)∨#dataORLA,direct;(A)=(A)∨(direct)ORLA,Rn;(A)=(A)∨
(Rn)ORLA,@Ri;(A)=(A)∨((Ri))ORLdirect,#data;(direct)=(direct)∨#dataORLdirect1,direct2;(direct1)=(direct1)∨(direct2)3.“異或”操作指令
XRLA,#data;(A)=(A)∨#dataXRLA,direct;(A)=(A)∨(direct)XRLA,Rn;(A)=(A)∨
(Rn)XRLA,@Ri;(A)=(A)∨((Ri))XRLdirect,#data;(direct)=(direct)∨#dataXRLdirect1,direct2;(direct1)=(direct1)∨(direct2)4.求反與清除指令
CLRA;(A)=0CPLA;(A)=(/A)5.循環(huán)指令RRA;右移操作RLA;左移操作RRCA;帶進位的右移操作RLCA;帶進位的左移操作注意:該指令常用于乘、除2的n次冪的操作。并且只能在A中進行。例:將30H的內(nèi)容*4放入31H和32H中,31H為高位。1.2.2.4位操作指令
1.位數(shù)據(jù)傳送指令MOV C,bit ;C←(bit)MOV bit,C ;bit←(C)2.位狀態(tài)修改指令CLR C ;C←0CLR bit ;bit←0CPL C ;C←CPL bit ;bit←(bit)SETB C ;C←1SETB bit ;bit←13.位邏輯運算指令ANL C,bit ;C←(C)∧(bit)ANL C,/bit ;C←(C)∧(bit)ORL C,bit ;C←(C)∨(bit)ORL C,/bit ;C←(C)∨(bit)1.2.2.5程序轉(zhuǎn)移類指令1.無條件轉(zhuǎn)移指令絕對(短)轉(zhuǎn)移指令AJMP addr11 ;PC10~0←addr11長轉(zhuǎn)移指令LJMP addr16 ;PC←addr16短(相對)轉(zhuǎn)移指令SJMP rel ;PC←PC+2+rel間接轉(zhuǎn)移指令JMP @A+DPTR ;PC←A+DPTR無條件轉(zhuǎn)移指令區(qū)別地址范圍地址空間地址計算相對偏移量rel的求法2.條件轉(zhuǎn)移指令累加器為零(非零)轉(zhuǎn)移指令JZ rel ;若(A)=0,則轉(zhuǎn)移;PC←(PC)+2+rel;否則程序順序執(zhí)行JNZ rel ;若(A)?0,則轉(zhuǎn)移;PC←(PC)+2+rel;否則程序順序執(zhí)減1非零轉(zhuǎn)移指令DJNZRn,rel;
DJNZdirect,rel;(Rn)=(Rn)-1;if(Rn)〉0轉(zhuǎn)移;否則順序執(zhí)行。兩數(shù)不等轉(zhuǎn)移指令
CJNEA,#data,relCJNEA,direct,relCJNERn,#data,relCJNE@Ri,#data,rel三分支指令ifA>=datac=0;否則c=1;ifA=data,則順序執(zhí)
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 錫林郭勒職業(yè)學院《機器人學導論》2023-2024學年第二學期期末試卷
- 大連楓葉職業(yè)技術學院《馬克思法學經(jīng)典名著研讀》2023-2024學年第二學期期末試卷
- 運城職業(yè)技術大學《室外環(huán)境方案設計》2023-2024學年第二學期期末試卷
- 福建農(nóng)林大學金山學院《高級機器學習》2023-2024學年第二學期期末試卷
- 炎黃職業(yè)技術學院《建筑設備(給水排水)》2023-2024學年第二學期期末試卷
- 東營科技職業(yè)學院《雕塑造型與表現(xiàn)技法》2023-2024學年第二學期期末試卷
- 泉州工程職業(yè)技術學院《增強現(xiàn)實技術》2023-2024學年第二學期期末試卷
- 南京信息職業(yè)技術學院《概率論與數(shù)理統(tǒng)計》2023-2024學年第二學期期末試卷
- 渤海理工職業(yè)學院《美國史專題》2023-2024學年第二學期期末試卷
- 防城港職業(yè)技術學院《康復功能評定學》2023-2024學年第二學期期末試卷
- 2024年南京旅游職業(yè)學院單招職業(yè)適應性測試題庫附答案
- 春節(jié)的那些事作文6篇
- (完整版)機房安全檢查表
- 山西省太原市2023-2024學年七年級下學期期中數(shù)學試題
- XF-T 3004-2020 汽車加油加氣站消防安全管理
- 子宮內(nèi)膜癌保留生育治療
- (正式版)JBT 14660-2024 額定電壓6kV到30kV地下掘進設備用橡皮絕緣軟電纜
- 本科院校-基礎醫(yī)學-醫(yī)學細胞生物學-第二章 細胞的概念與分子基礎
- 2.2算法的概念及其描述課件人教中圖版高中信息技術必修1
- 汽車電子技術專業(yè)人才培養(yǎng)方案樣本
- 血栓風險評估及個體化干預(遺傳性易栓癥風險基因檢測)
評論
0/150
提交評論