版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第5講(2012-4-17)11-12第2學(xué)期第8周汽車單片機(jī)1.指令系統(tǒng)簡介;2.尋址方式;3.指令系統(tǒng);4.匯編語言程序設(shè)計(jì);5.程序設(shè)計(jì)實(shí)例;第3章MCS-51指令系統(tǒng)及匯編語言MCS-51的基本指令共111條,按指令所占的字節(jié)來分:
(1)單字節(jié)指令49條;
(2)雙字節(jié)指令45條;
(3)三字節(jié)指令17條。按指令的執(zhí)行時(shí)間來分:
(1)1個(gè)機(jī)器周期(12個(gè)時(shí)鐘振蕩周期)指令64條
(2)2個(gè)機(jī)器周期(24個(gè)時(shí)鐘振蕩周期)指令45條(3)只有乘、除兩條指令的執(zhí)行時(shí)間為4個(gè)機(jī)器周期(48個(gè)時(shí)鐘振蕩周期)。復(fù)習(xí)指令系統(tǒng)分類占用哪里的字節(jié)?該時(shí)間由誰來決定?復(fù)習(xí)指令格式
指令格式——指令的表達(dá)方式稱為指令格式
[標(biāo)號(hào):]操作碼[目的操作數(shù)][,源操作數(shù)][;注釋]LP1:MOV@R0,A;先清R0INCR0;R0里數(shù)據(jù)自加1DJNZR7,LP1;先(R7)-1→R7,判斷R7復(fù)習(xí)
尋址方式
MCS-51單片機(jī)有7種尋址方式,見表1。序號(hào)尋址方式范例1立即尋址MOVA,#20H2直接尋址MOVA,20H3寄存器尋址MOVA,Rn
4寄存器間接尋址MOVA,@Ri
5變址尋址MOVCA,@A+DPTRMOVCA,@A+PC6相對尋址JZrel;PC<-(PC)+2+relJCLOOP7位尋址MOVC,40H有五大類指令,共111條:(1)數(shù)據(jù)傳送類(28條)
:RAM、ROM、堆棧,傳送、交換數(shù)據(jù)。(2)算術(shù)運(yùn)算類(24條)
:字節(jié)。其中操作數(shù)既可能是數(shù)據(jù),也可能是地址。加、減、乘、除,自加(減)1;(3)邏輯運(yùn)算類(25條)
:與、或、異或、移位。(4)控制轉(zhuǎn)移類(17條)
:(無)條件轉(zhuǎn)移、空操作。(5)布爾變量操作類(17條)
:位數(shù)據(jù)傳送、與、或、轉(zhuǎn)移。3.3指令系統(tǒng)
3.3.1數(shù)據(jù)傳送類指令(賦值指令)
使用最頻繁的一類指令,共29條,通用格式:
MOV<目的操作數(shù)>,<源操作數(shù)>屬“復(fù)制”性質(zhì),而不是“搬家”數(shù)據(jù)傳送類指令不影響標(biāo)志位,Cy、Ac和OV,但不包括奇偶標(biāo)志位P。片內(nèi)數(shù)據(jù)傳送指令;片外數(shù)據(jù)傳送指令;程序存儲(chǔ)器數(shù)據(jù)傳送指令;數(shù)據(jù)交換指令;堆棧操作指令;1.以累加器A為目的操作數(shù)的指令
MOVA,direct;(direct)→A
MOVA,Rn;(Rn)→A,n=0~7 MOVA,@Ri;((Ri))→A,i=0,1 MOVA,#data;#data→A功能:是把源操作數(shù)的內(nèi)容送入累加器A。一、片內(nèi)數(shù)據(jù)傳送指令指令助記符及功能說明如下:目的操作數(shù)源操作數(shù)功能說明源操作數(shù)尋址方式MOVA,direct;(A)←(direct)直接尋址MOVA,@Ri;(A)←((Ri))寄存器間接尋址MOVA,Rn;(A)←(Rn)寄存器尋址MOVA,#data;(A)←data立即尋址例1
若(50H)=10H,則執(zhí)行指令MOVA,50H之后,(A)=10H。例2
若(R0)=20H,(20H)=39H,則執(zhí)行指令MOVA,@R0后,(A)=39H。例3
若(R5)=55H,則執(zhí)行指令MOVA,R5后,(A)=55H。2.以Rn為目的操作數(shù)的指令
MOVRn,A;(A)→Rn,n=0~7 MOVRn,direct;(direct)→Rn,n=0~7MOVRn,#dat;#data→Rn,n=0~7功能:是把源操作數(shù)的內(nèi)容送入當(dāng)前一組工作寄存器區(qū)的R0~R7中的某一個(gè)寄存器。例1
若(A)=20H,則執(zhí)行指令MOVR3,A后,(R3)=20H。例2
若(30H)=01H,則執(zhí)行指令MOVR7,30H后,(R7)=01H。指令助記符及功能說明如下:目的操作數(shù)源操作數(shù)功能說明源操作數(shù)尋址方式MOVRn,A;(Rn)←(A)寄存器尋址MOVRn,direct;(Rn)←(direct)直接尋址MOVRn,#data;(Rn)←data立即尋址3.以直接地址direct為目的操作數(shù)的指令
MOVdirect,A;(A)→directMOV direct,Rn;(Rn)→direct,n=0~7MOVdirect1,direct2; MOVdirect,@Ri;((Ri))→direct MOV direct,#data;#data→direct功能:把源操作數(shù)送入直接地址指出的存儲(chǔ)單元。direct指的是內(nèi)部RAM或SFR的地址。例1
若(30H)=20H,(R0)=30H,則執(zhí)行指令MOV90H,@R0的結(jié)果為(90H)=20H。例2
若例1中的條件不變,而執(zhí)行指令MOVP1,@R0,則(P1)=20H。指令助記符及功能說明如下:目的操作數(shù)源操作數(shù)功能說明源操作數(shù)尋址方式MOVdirectX,A;(directX)←(A)寄存器尋址MOVdirectX,Rn;(directX)←(Rn)寄存器尋址MOVdirectX,directY;(directX)←(directY)直接尋址MOVdirectX,@Ri;(directX)←((Ri))寄存器間接尋址MOVdirectX,#data;(directX)←data立即尋址若(30H)=20H,(R0)=30H,則執(zhí)行指令MOV90H,@R0的結(jié)果為(90H)=20H。執(zhí)行指令MOVP1,@R0,則(P1)=20H=00100000B
MCS-51P1.0P1.7000001005V0V0V4.以寄存器間接地址為目的操作數(shù)的指令
MOV@Ri,A;(A)→((Ri)),i=0,1MOV@Ri,direct;(direct)→((Ri))MOV@Ri,#data;#data→((Ri))例1若(R0)=50H,(50H)=20H,(A)=10H,則執(zhí)行指令“MOV@R0,A”后,50H單元的內(nèi)容由原來的20H變?yōu)?0H。目的操作數(shù)源操作數(shù)功能說明源操作數(shù)尋址方式MOV@Ri,A;((Ri))←(A)寄存器尋址MOV@Ri,direct;((Ri))←(direct)直接尋址MOV@Ri,#data;((Ri))←data立即尋址
MOVA,#00H;00H→(A)MOVR0,#20H;20H→(R0)第一個(gè)單元MOVR7,#20H;20H→(R7)個(gè)數(shù)LP1:MOV@R0,A;先清R0INCR0;R0里數(shù)據(jù)自加1DJNZR7,LP1;先(R7)-1→R7,判斷R7
是否為0,不為0則返回
例3-7P52
將20H開始的32個(gè)單元全部清05.16位數(shù)傳送指令
MOVDPTR,#data16;#data16→DPTR唯一的16位數(shù)據(jù)的傳送指令,立即數(shù)的高8位送入DPH,立即數(shù)的低8位送入DPL。目的操作數(shù)源操作數(shù)功能說明源操作數(shù)尋址方式MOVDPTR,#data16;(DPTR)←data16立即尋址這條指令的功能是:把16位立即數(shù)送入DPTR中。而16位的數(shù)據(jù)指針DPTR由DPH與DPL組成,該指令執(zhí)行后,16位立即數(shù)的高8位送入DPH中,低8位送入DPL中。該指令的執(zhí)行,不影響程序狀態(tài)寄存器PSW。指累加器A與外部數(shù)據(jù)存儲(chǔ)器傳送指令
MOVXA,@DPTR;((DPTR))→A,讀外部RAM/IOMOVXA,@Ri;((Ri))→A,讀外部RAM/IOMOVX@DPTR,A;(A)→((DPTR)),寫外部RAM/IOMOVX@Ri,A;(A)→((Ri)),寫外部RAM/IO功能:讀外部RAM存儲(chǔ)器或I/O中的一個(gè)字節(jié),或把A中一個(gè)字節(jié)的數(shù)據(jù)寫到外部RAM存儲(chǔ)器或I/O中。
注意:RD*或WR*信號(hào)有效。二、片外數(shù)據(jù)存儲(chǔ)器傳送指令外部數(shù)據(jù)存儲(chǔ)器(或I/O口)與累加器A傳送指令指令助記符與功能說明如下:目的操作數(shù)源操作數(shù)功能說明源操作數(shù)尋址方式MOVXA,@DPTR;(A)←((DPTR))寄存器間接尋址MOVXA,@Ri;(A)←((Ri))寄存器間接尋址MOVX@DPTR,A;((DPTR))←(A)寄存器尋址MOVX@Ri,A;((Ri))←(A)寄存器尋址注意:1)采用DPTR間接尋址,高8位地址(DPH)由P2口輸出,低8位地址(DPL)由P0口輸出。最多64K。2)采用Ri(i=0,1)間接尋址,可尋址片外256個(gè)單元的數(shù)據(jù)存儲(chǔ)器。Ri內(nèi)容由P0口輸出。3)片外RAM存儲(chǔ)器數(shù)據(jù)只能與A進(jìn)行交換。例1將外部數(shù)據(jù)存儲(chǔ)器7FF0H單元中的數(shù)據(jù)取出,存放到外部數(shù)據(jù)存儲(chǔ)器2000H單元中去。MOVDPTR,#7FF0HMOVXA,@DPTRMOVDPTR,#2000HMOVX@DPTR,A自學(xué)例題3-9,3-10,3-11程序存儲(chǔ)器向累加器A傳送數(shù)據(jù)指令指令助記符與功能說明如下:目的操作數(shù)源操作數(shù)功能說明源操作數(shù)尋址方式MOVCA,@A+PC;(A)←((A)+(PC)+1)變址尋址MOVCA,@A+DPTR;(A)←((A)+(DPTR))變址尋址三、程序存儲(chǔ)器數(shù)據(jù)傳送指令用于讀程序存儲(chǔ)器中的數(shù)據(jù)表格的指令,均采用基址寄存器加變址寄存器間接尋址方式。
(1)MOVCA,@A+PC
以PC作基址寄存器,A的內(nèi)容作為無符號(hào)整數(shù)和PC中的內(nèi)容(下一條指令的起始地址)相加后得到一個(gè)16位的地址,該地址指出的程序存儲(chǔ)單元的內(nèi)容送到累加器A。注意:PSEN信號(hào)有效。例如:(A)=30H,執(zhí)行地址1000H處的指令
1000H:MOVCA,@A+PC
本指令占用一個(gè)字節(jié),執(zhí)行結(jié)果將程序存儲(chǔ)器中1031H的內(nèi)容送入A。優(yōu)點(diǎn):不改變特殊功能寄存器及PC的狀態(tài),根據(jù)A的內(nèi)容就可以取出表格中的常數(shù)。缺點(diǎn):表格只能存放在該條查表指令后面的256個(gè)單元之內(nèi),表格的大小受到限制,且表格只能被一段程序所利用。
(2)MOVCA,@A+DPTR以DPTR作為基址寄存器,A的內(nèi)容作為無符號(hào)數(shù)和DPTR的內(nèi)容相加得到一個(gè)16位的地址,把由該地址指出的程序存儲(chǔ)器單元的內(nèi)容送到累加器A.例如(DPTR)=8100H(A)=40H執(zhí)行指令
MOVCA,@A+DPTR
本指令的執(zhí)行結(jié)果只和指針DPTR及累加器A的內(nèi)容有關(guān),與該指令存放的地址及常數(shù)表格存放的地址無關(guān),因此表格的大小和位置可以在64K程序存儲(chǔ)器中任意安排,一個(gè)表格可以為各個(gè)程序塊公用。兩條指令是在MOV的后面加C,“C”是CODE的第一個(gè)字母,即代碼的意思。教材例3-12、3-13
1.字節(jié)交換指令例1設(shè)(R1)=30H,(30H)=45H,(A)=7FH,則執(zhí)行指令:XCHA,@R1結(jié)果:(A)=45H,而(30H)=7FH,從而實(shí)現(xiàn)了累加器A與內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM中30H單元的數(shù)據(jù)交換。指令助記符與功能說明如下:目的操作數(shù)源操作數(shù)功能說明源操作數(shù)尋址方式XCHA,direct(direct)直接尋址XCHA,@Ri((Ri))間接尋址XCHA,Rn(Rn)寄存器尋址四、數(shù)據(jù)交換指令2.半字節(jié)交換指令例1設(shè)(30H)=6FH,(R0)=30H,(A)=0F6H,則執(zhí)行指令:XCHDA,@Ri結(jié)果:(A)=0FFH,(30H)=66H數(shù)據(jù)交換指令除了影響始終跟蹤A中數(shù)據(jù)奇偶性的P標(biāo)志外,對PSW中其他標(biāo)志位均無影響。指令助記符與功能說明如下:目的操作數(shù)源操作數(shù)功能說明源操作數(shù)尋址方式XCHDA,@Ri(A)←((Ri))間接尋址3.累加器A中高四位與低四位交換指令SWAPA該指令所執(zhí)行的操作是累加器A中的高4位與低4位的內(nèi)容互換,其結(jié)果仍存放在累加器A中。例1
設(shè)(A)=0A5H(10100101B),則執(zhí)行指令:SWAPA結(jié)果:(A)=5AH(01011010B)指令SWAP交換了A中高、低半字節(jié)(3~0和7~4),結(jié)果不影響標(biāo)志寄存器PSW。MCS-51內(nèi)部RAM中可以設(shè)定一個(gè)后進(jìn)先出(LIFO-LastInFirstOut)的區(qū)域稱作堆棧.堆棧指針SP指出堆棧的棧頂位置。堆棧操作指令只有2條,即:壓入(PUSH)和彈出(POP)。壓入指令:PUSHdirect ;SP←SP+1,((SP))←(direct)彈出指令:POPdirect ;((SP))←(direct),SP←SP-1五、堆棧操作指令形式1 PUSHA ;保護(hù)A中數(shù)據(jù)
PUSHPSW;保護(hù)標(biāo)志寄存器中數(shù)據(jù)
… ;
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 英漢交互口譯課程設(shè)計(jì)
- 體育行業(yè)助理的日常工作內(nèi)容和能力要求
- 內(nèi)科護(hù)士工作心得
- 情境教學(xué)法在班級(jí)中的應(yīng)用計(jì)劃
- 建筑行業(yè)客服工作思考
- 酒店管理技術(shù)要點(diǎn)概述
- 旅游景區(qū)衛(wèi)生凈化
- 2024年甜甜的秘密教案
- 2024年認(rèn)識(shí)數(shù)學(xué)的教案
- 2024年認(rèn)識(shí)空氣教案
- 房屋無償使用協(xié)議書(8篇)
- 中央銀行理論與實(shí)務(wù)期末復(fù)習(xí)題
- 國家開放大學(xué)電大本科《國際私法》案例題題庫及答案(b試卷號(hào):1020)
- 喜慶中國節(jié)春節(jié)習(xí)俗文化PPT模板
- 測井儀器設(shè)計(jì)規(guī)范--電子設(shè)計(jì)
- 北師大版小學(xué)五年級(jí)上冊數(shù)學(xué)第六單元《組合圖形的面積》單元測評(píng)培優(yōu)試卷
- 用特征方程求數(shù)列的通項(xiàng)
- 四年級(jí)奧數(shù)題(一)找規(guī)律
- 素材庫管理系統(tǒng)架構(gòu)(共13頁)
- 監(jiān)理平行檢驗(yàn)記錄表
- 縣領(lǐng)導(dǎo)在新錄用公務(wù)員培訓(xùn)班開班典禮上的講話
評(píng)論
0/150
提交評(píng)論