版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
上節(jié)內(nèi)容回顧尋址方式請(qǐng)說(shuō)明下面指令源操作數(shù)和目的操作數(shù)的尋址方式MOVA,#dataMOVRn,directMOV@Ri,directMOVCA,@A+DPTR第6-7講教學(xué)目的和要求【教學(xué)目標(biāo)】通過(guò)講述單片機(jī)的尋址方式和指令系統(tǒng)功能,以及位尋址功能。掌握各種尋址方式、常用指令的功能和使用方法及匯編語(yǔ)言程序設(shè)計(jì)方法。【教學(xué)重點(diǎn)】①M(fèi)CS51單片機(jī)的尋址方式;②MCS51單片機(jī)的指令系統(tǒng);【教學(xué)難點(diǎn)】尋址方式及指令系統(tǒng)。第四章MCS-51單片機(jī)指令系統(tǒng)4.3MCS51指令系統(tǒng)MCS51指令系統(tǒng)共有111條指令,按功能分類,可分成5類。數(shù)據(jù)傳送類指令:28條;算術(shù)操作類指令:24條;邏輯運(yùn)算類指令:25條;控制轉(zhuǎn)移類指令:17條;位操作類指令:17條4.3MCS51指令系統(tǒng)MCS51指令系統(tǒng)共有111條指令,按功能分類,可分成5類。數(shù)據(jù)傳送類指令:28條;算術(shù)操作類指令:24條;邏輯運(yùn)算類指令:25條;控制轉(zhuǎn)移類指令:17條;位操作類指令:17條4.3.1
數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令時(shí)編程時(shí)使用最頻繁的一類指令一般不影響程序狀態(tài)字寄存器PSW的狀態(tài)。一般傳送類指令(MOV)特殊傳送類指令:MOVC、MOVX、PUSH、POP、XCH、XCHD、SWAP共28條數(shù)據(jù)傳送類指令4.3.1.1
一般傳送類指令16位傳送(僅1條)MOVDPTR,#data16;DPTR←data16
【例】執(zhí)行指令MOVDPTR,#1234H。
(DPH)=12H,(DPL)=34H。8位傳送
通用格式:MOV
<目的字節(jié)>,<源字節(jié)>
;MOV指令①以A為目的操作數(shù)MOVA,Rn;
A←(Rn)direct;A←(direct)@Ri;
A←((Ri))
#data;A←data【例】若(R1)=20H,(20H)=55H。執(zhí)行指令MOVA,@R1后,A寄存器的內(nèi)容是多少?MOV指令②以Rn為目的操作數(shù)MOVRn,A;
Rn←(A)direct;Rn←(direct)#data;Rn←data【例】執(zhí)行指令MOVR6,#50H后,(R6)=50HMOV指令③以直接地址direct為目的操作數(shù)MOVdirect,Adirect←ARn;
direct←(Rn)direct1;direct←(direct1)@Ri;
direct←((Ri))
#data;direct←data【例】若(R1)=50H,(50H)=18H,執(zhí)行指令MOV40H,@R1后,40H單元內(nèi)容是多少?MOV指令④以寄存器間接地址@Ri為目的操作數(shù)MOV@Ri,A;
(Ri)←(A)direct;(Ri)←(direct)#data;(Ri)←data【例】若(R1)=30H,(A)=20H,執(zhí)行指令MOV@R1,A后,30H單元的內(nèi)容是多少。內(nèi)部數(shù)據(jù)傳送類指令小結(jié)累加器A寄存器間址@Ri#data立即數(shù)直接地址direct工作寄存器Rn練習(xí)已知:(R0)=30H,試問執(zhí)行如下指令,累加器A、R3、30H、31H單元中內(nèi)容各是什么?MOVA,#20HMOVR3,#45HMOV@R0,#46HMOV31H,#47H執(zhí)行后,結(jié)果為:A=20H;R3=45H;(30H)=46H;(31H)=47H4.3.1.2特殊傳送類指令
以DPTR內(nèi)容為基址讀ROM中常數(shù)表項(xiàng)指令MOVC,亦稱查表指令ROM中可以存放程序代碼,還經(jīng)常存放常數(shù)表
MOVCA,@A+DPTR;A←((A)+(DPTR))
以PC內(nèi)容為基址MOVCA,@A+PC;A←((A)+(PC))常數(shù)表可以存放在ROM的任何位置,稱為遠(yuǎn)程查表指令。常數(shù)表只能存放在該指令后的256個(gè)單元內(nèi),稱為近程查表指令。舉例已知A寄存器當(dāng)前內(nèi)容為04H,試編寫程序,以DPTR作為基址寄存器,將片外ROM的2015H單元中內(nèi)容讀出,并把數(shù)送到片內(nèi)RAM的7FH單元。MOVDPTR,#2011HMOVCA,@A+DPTRMOV7FH,A特殊傳送指令MOVX
讀片外RAM讀片外RAM及接口單元數(shù)據(jù)的指令MOVX片外RAM中經(jīng)常存放數(shù)據(jù)采集與處理的中間數(shù)據(jù)MOVXA,@DPTR;A←((DPTR))MOVXA,@Ri;A←((Ri))寫片外RAMMOVX@DPTR,A;((DPTR))←AMOVX@Ri,A;((Ri))←A舉例判斷下列指令的正誤,將錯(cuò)誤的更正。MOVXA,2000HMOVDPTR,#2000HMOVXA,@DPTR2.MOVXA,20HMOVR0,#20HMOVXA,@R04.3.1.3堆棧操作指令PUSH與POP堆棧是一片存儲(chǔ)區(qū),遵循“后進(jìn)先出”原則,棧頂由SP指示,初始化時(shí),SP=07H。8051的堆棧設(shè)在片內(nèi)RAM低端的128個(gè)單元,向上生長(zhǎng),即入棧時(shí),棧頂指針增加。數(shù)據(jù)或指令數(shù)據(jù)或指令棧底SPPushpopSPXX+1X+2堆棧操作指令PUSH與POP入棧指令PUSH。PUSHdirect;SP←(SP)+1,(SP)←(direct)
先增加指針,以指向一個(gè)空的單元,將要數(shù)據(jù)壓入堆棧出棧指令POP。POPdirect;(direct)←((SP)),SP←(SP)-1
先取出數(shù)據(jù),再減指針,將單元空出
。堆棧用于子程序調(diào)用時(shí)保護(hù)返回地址,或者用于保護(hù)子程序調(diào)用之前的某些重要數(shù)據(jù)(即保護(hù)現(xiàn)場(chǎng)),還可以用于數(shù)據(jù)交換。堆棧操作指令PUSH與POP設(shè)(SP)=60H,(A)=30H,(B)=70H,連續(xù)執(zhí)行兩條指令PUSHACC和PUSHB;再連續(xù)執(zhí)行兩條指令POPDPH和POPDPL30H70H棧底60H61H62HSPPUSHACCPUSHBPOPDPHPOPDPLSPSPDPH=70HDPL=30H4.3.1.4數(shù)據(jù)交換指令包含XCH、XCHD和SWAP三條字節(jié)交換指令XCHXCHA,Rn;
(Rn)?(A)direct;(A)?(direct)@Ri;((Ri))?(A)【例】若(R0)=80H,(A)=20H。執(zhí)行指令
XCHA,R0后,(A)=80H,(R0)=20H。數(shù)據(jù)交換指令XCHD半字節(jié)交換指令XCHD指令形式:XCHDA,@Ri指令功能:將寄存器間址的RAM單元的低半字節(jié)與A的低半字節(jié)互換,而高半字節(jié)保持不變?!纠咳簦≧0)=30H,(30H)=67H,(A)=20H。執(zhí)行指令XCHDA,@R0指令后,(A)=27H,(30H)=60H。數(shù)據(jù)交換指令SWAP累加器高低位交換指令SWAP指令形式:SWAPA指令功能:將累加器的高低4位互換?!纠咳簦ˋ)=30H,執(zhí)行指令SWAPA后,(A)=03H。4.3.2
算術(shù)運(yùn)算類指令算數(shù)運(yùn)算結(jié)果要影響PSW中標(biāo)志位;PSW中標(biāo)志位的含義CY為1,無(wú)符號(hào)數(shù)(字節(jié))加減發(fā)生進(jìn)位或借位OV為1,有符號(hào)數(shù)(字節(jié))加減發(fā)生溢出錯(cuò)誤AC為1,十進(jìn)制數(shù)(BCD碼)加法的結(jié)果應(yīng)調(diào)整P為1,存于累加器A中操作結(jié)果的“1”的個(gè)數(shù)為奇數(shù)算術(shù)運(yùn)算指令影響標(biāo)志位示例【例】有2個(gè)參與相加的機(jī)器數(shù),一個(gè)是84H,另一個(gè)是8DH。試分析運(yùn)算過(guò)程及其對(duì)狀態(tài)標(biāo)志的影響。ACC84H8DH11H結(jié)果:CY為1;AC為1
;OV為1
;P為0
10000100+10001101100010001此時(shí)PSW的值為多少?4.3.2.1加法運(yùn)算加法指令(ADD,共4條)ADDA,[Rn][direct][@Ri][#data],源操作數(shù)為四選一。帶進(jìn)位的加法指令(ADDC,共4條)ADDCA,[Rn][direct][@Ri][#data],源操作數(shù)為四選一增1指令(INC,共5條)INC[A][Rn][direct][@Ri][DPTR],五選一不影響任何標(biāo)志位。十進(jìn)制調(diào)整指令(DA,1條)DAAADD不帶進(jìn)位的加法指令由寄存器A與(Rn、direct、@Ri、#data)中的一個(gè)相加,結(jié)果存回寄存器A中?!纠咳粲?個(gè)無(wú)符號(hào)數(shù)存于累加器A和RAM的30H單元,即(A)=84H,(30H)=8DH,執(zhí)行指令A(yù)DDA,30H。8DHRAM30H84HA8DH84H+11H11H將同時(shí)修改PSW的內(nèi)容加法運(yùn)算結(jié)果的溢出判斷無(wú)符號(hào)數(shù):判斷無(wú)符號(hào)是否溢出時(shí),僅需判斷CY是否為1即可。有符號(hào)數(shù):判斷有符號(hào)運(yùn)算是否產(chǎn)生溢出時(shí),僅需判斷OV是否為1即可。程序設(shè)計(jì)中,若需要對(duì)結(jié)果是否產(chǎn)生溢出,進(jìn)行不同處理時(shí),無(wú)符號(hào)數(shù)用JNC或JC,有符號(hào)數(shù)要用JNB或JB進(jìn)行條件轉(zhuǎn)移。ADDC
帶進(jìn)位加法指令一般應(yīng)用于多字節(jié)數(shù)據(jù)的加法ADDCA,Rn;
A←(Rn)+(A)+CYdirect;A←(direct)+(A)+CY@Ri;
A←((Ri))+(A)
+CY#data;A←data+(A)+CY【例】試把存放在R1R2和R3R4中的兩個(gè)16位數(shù)相加,結(jié)果存于R5R6中。R2R4R1R3+R6R5CMOV A,R2ADD A,R4MOV R6,AMOV A,R1ADCA,R3MOV R5,ADA
十進(jìn)制調(diào)整指令DAA:調(diào)整A的內(nèi)容為正確的BCD碼當(dāng)兩個(gè)用壓縮BCD表示的數(shù)進(jìn)行相加時(shí),后跟此指令,單片機(jī)自動(dòng)完成調(diào)整。【例】在R3中有十進(jìn)制數(shù)67,在R2中有十進(jìn)制數(shù)85,用十進(jìn)制運(yùn)算,運(yùn)算的結(jié)果放于R5中。程序?yàn)椋篗OVA,R3ADDA,R2 DA A
MOVR5,A 0110011110000101+1110110001100110+010100101
對(duì)某個(gè)寄存器或某單元中的數(shù)據(jù),并不知道用戶存放的類型是有符號(hào)數(shù)、無(wú)符號(hào)數(shù),還是BCD碼,需要用戶在編程時(shí),根據(jù)不同類型選擇不同操作。4.3.2.2減法指令
帶借位的減法指令(SUBB,共4條)SUBBA,[Rn][direct][@Ri][#data],源操作數(shù)為四選一若無(wú)須帶借位相減,在執(zhí)行此指令之前,清除借位位C的內(nèi)容,即執(zhí)行CLRC。減1指令(DEC,共5條)DEC[A][Rn][direct][@Ri][DPTR],五選一減法中關(guān)于標(biāo)志位的說(shuō)明SUBB中對(duì)標(biāo)志位的影響CY為1,表示最高位有借位OV為1,有符號(hào)數(shù)減法時(shí)發(fā)生溢出錯(cuò)誤,正-負(fù)或負(fù)-正時(shí)可能發(fā)生。AC為1,低半字節(jié)向高半字節(jié)有借位;DEC對(duì)標(biāo)志位的影響僅影響P標(biāo)志位。減法指令舉例【例】求R3←R2-R1。
MOVA,R2
CLR C SUBBA,R1 MOV
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版門診設(shè)備設(shè)施租賃與承包合同4篇
- 2025年度航空航天零部件加工與供應(yīng)分包合同3篇
- 二零二五年度離婚財(cái)產(chǎn)分割與子女撫養(yǎng)權(quán)分配合同4篇
- 2025年度美團(tuán)特色團(tuán)購(gòu)合作合同范本細(xì)則4篇
- 2 24-全國(guó)護(hù)理專業(yè)教學(xué) 資源庫(kù)-1738309514230
- 診斷與改進(jìn)“應(yīng)知應(yīng)會(huì)”50問
- 2025年度特色培訓(xùn)學(xué)校股份合作發(fā)展合同3篇
- 2025年度校園春游活動(dòng)團(tuán)隊(duì)旅游合同
- 二零二五年企業(yè)員工出差通訊費(fèi)用報(bào)銷及標(biāo)準(zhǔn)合同3篇
- 2025年度個(gè)人信用借款合同隱私保護(hù)措施2篇
- 三年級(jí)數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)附答案
- 中醫(yī)診療方案腎病科
- 2025年安慶港華燃?xì)庀薰菊衅腹ぷ魅藛T14人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 人教版(2025新版)七年級(jí)下冊(cè)數(shù)學(xué)第七章 相交線與平行線 單元測(cè)試卷(含答案)
- 中藥飲片培訓(xùn)課件
- 醫(yī)院護(hù)理培訓(xùn)課件:《早產(chǎn)兒姿勢(shì)管理與擺位》
- 《論文的寫作技巧》課件
- 空氣自動(dòng)站儀器運(yùn)營(yíng)維護(hù)項(xiàng)目操作說(shuō)明以及簡(jiǎn)單故障處理
- 2022年12月Python-一級(jí)等級(jí)考試真題(附答案-解析)
- T-CHSA 020-2023 上頜骨缺損手術(shù)功能修復(fù)重建的專家共識(shí)
- Hypermesh lsdyna轉(zhuǎn)動(dòng)副連接課件完整版
評(píng)論
0/150
提交評(píng)論