版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第5講(2012-4-17)11-12第2學期第8周汽車單片機1.指令系統(tǒng)簡介;2.尋址方式;3.指令系統(tǒng);4.匯編語言程序設計;5.程序設計實例;第3章MCS-51指令系統(tǒng)及匯編語言MCS-51的基本指令共111條,按指令所占的字節(jié)來分:
(1)單字節(jié)指令49條;
(2)雙字節(jié)指令45條;
(3)三字節(jié)指令17條。按指令的執(zhí)行時間來分:
(1)1個機器周期(12個時鐘振蕩周期)指令64條
(2)2個機器周期(24個時鐘振蕩周期)指令45條(3)只有乘、除兩條指令的執(zhí)行時間為4個機器周期(48個時鐘振蕩周期)。復習指令系統(tǒng)分類占用哪里的字節(jié)?該時間由誰來決定?復習指令格式
指令格式——指令的表達方式稱為指令格式
[標號:]操作碼[目的操作數(shù)][,源操作數(shù)][;注釋]LP1:MOV@R0,A;先清R0INCR0;R0里數(shù)據(jù)自加1DJNZR7,LP1;先(R7)-1→R7,判斷R7復習
尋址方式
MCS-51單片機有7種尋址方式,見表1。序號尋址方式范例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)算術運算類(24條)
:字節(jié)。其中操作數(shù)既可能是數(shù)據(jù),也可能是地址。加、減、乘、除,自加(減)1;(3)邏輯運算類(25條)
:與、或、異或、移位。(4)控制轉移類(17條)
:(無)條件轉移、空操作。(5)布爾變量操作類(17條)
:位數(shù)據(jù)傳送、與、或、轉移。3.3指令系統(tǒng)
3.3.1數(shù)據(jù)傳送類指令(賦值指令)
使用最頻繁的一類指令,共29條,通用格式:
MOV<目的操作數(shù)>,<源操作數(shù)>屬“復制”性質,而不是“搬家”數(shù)據(jù)傳送類指令不影響標志位,Cy、Ac和OV,但不包括奇偶標志位P。片內(nèi)數(shù)據(jù)傳送指令;片外數(shù)據(jù)傳送指令;程序存儲器數(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)容送入當前一組工作寄存器區(qū)的R0~R7中的某一個寄存器。例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ù)送入直接地址指出的存儲單元。direct指的是內(nèi)部RAM或SFR的地址。例1
若(30H)=20H,(R0)=30H,則執(zhí)行指令MOV90H,@R0的結果為(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的結果為(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)第一個單元MOVR7,#20H;20H→(R7)個數(shù)LP1:MOV@R0,A;先清R0INCR0;R0里數(shù)據(jù)自加1DJNZR7,LP1;先(R7)-1→R7,判斷R7
是否為0,不為0則返回
例3-7P52
將20H開始的32個單元全部清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ù)存儲器傳送指令
MOVXA,@DPTR;((DPTR))→A,讀外部RAM/IOMOVXA,@Ri;((Ri))→A,讀外部RAM/IOMOVX@DPTR,A;(A)→((DPTR)),寫外部RAM/IOMOVX@Ri,A;(A)→((Ri)),寫外部RAM/IO功能:讀外部RAM存儲器或I/O中的一個字節(jié),或把A中一個字節(jié)的數(shù)據(jù)寫到外部RAM存儲器或I/O中。
注意:RD*或WR*信號有效。二、片外數(shù)據(jù)存儲器傳送指令外部數(shù)據(jù)存儲器(或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個單元的數(shù)據(jù)存儲器。Ri內(nèi)容由P0口輸出。3)片外RAM存儲器數(shù)據(jù)只能與A進行交換。例1將外部數(shù)據(jù)存儲器7FF0H單元中的數(shù)據(jù)取出,存放到外部數(shù)據(jù)存儲器2000H單元中去。MOVDPTR,#7FF0HMOVXA,@DPTRMOVDPTR,#2000HMOVX@DPTR,A自學例題3-9,3-10,3-11程序存儲器向累加器A傳送數(shù)據(jù)指令指令助記符與功能說明如下:目的操作數(shù)源操作數(shù)功能說明源操作數(shù)尋址方式MOVCA,@A+PC;(A)←((A)+(PC)+1)變址尋址MOVCA,@A+DPTR;(A)←((A)+(DPTR))變址尋址三、程序存儲器數(shù)據(jù)傳送指令用于讀程序存儲器中的數(shù)據(jù)表格的指令,均采用基址寄存器加變址寄存器間接尋址方式。
(1)MOVCA,@A+PC
以PC作基址寄存器,A的內(nèi)容作為無符號整數(shù)和PC中的內(nèi)容(下一條指令的起始地址)相加后得到一個16位的地址,該地址指出的程序存儲單元的內(nèi)容送到累加器A。注意:PSEN信號有效。例如:(A)=30H,執(zhí)行地址1000H處的指令
1000H:MOVCA,@A+PC
本指令占用一個字節(jié),執(zhí)行結果將程序存儲器中1031H的內(nèi)容送入A。優(yōu)點:不改變特殊功能寄存器及PC的狀態(tài),根據(jù)A的內(nèi)容就可以取出表格中的常數(shù)。缺點:表格只能存放在該條查表指令后面的256個單元之內(nèi),表格的大小受到限制,且表格只能被一段程序所利用。
(2)MOVCA,@A+DPTR以DPTR作為基址寄存器,A的內(nèi)容作為無符號數(shù)和DPTR的內(nèi)容相加得到一個16位的地址,把由該地址指出的程序存儲器單元的內(nèi)容送到累加器A.例如(DPTR)=8100H(A)=40H執(zhí)行指令
MOVCA,@A+DPTR
本指令的執(zhí)行結果只和指針DPTR及累加器A的內(nèi)容有關,與該指令存放的地址及常數(shù)表格存放的地址無關,因此表格的大小和位置可以在64K程序存儲器中任意安排,一個表格可以為各個程序塊公用。兩條指令是在MOV的后面加C,“C”是CODE的第一個字母,即代碼的意思。教材例3-12、3-13
1.字節(jié)交換指令例1設(R1)=30H,(30H)=45H,(A)=7FH,則執(zhí)行指令:XCHA,@R1結果:(A)=45H,而(30H)=7FH,從而實現(xiàn)了累加器A與內(nèi)部數(shù)據(jù)存儲器RAM中30H單元的數(shù)據(jù)交換。指令助記符與功能說明如下:目的操作數(shù)源操作數(shù)功能說明源操作數(shù)尋址方式XCHA,direct(direct)直接尋址XCHA,@Ri((Ri))間接尋址XCHA,Rn(Rn)寄存器尋址四、數(shù)據(jù)交換指令2.半字節(jié)交換指令例1設(30H)=6FH,(R0)=30H,(A)=0F6H,則執(zhí)行指令:XCHDA,@Ri結果:(A)=0FFH,(30H)=66H數(shù)據(jù)交換指令除了影響始終跟蹤A中數(shù)據(jù)奇偶性的P標志外,對PSW中其他標志位均無影響。指令助記符與功能說明如下:目的操作數(shù)源操作數(shù)功能說明源操作數(shù)尋址方式XCHDA,@Ri(A)←((Ri))間接尋址3.累加器A中高四位與低四位交換指令SWAPA該指令所執(zhí)行的操作是累加器A中的高4位與低4位的內(nèi)容互換,其結果仍存放在累加器A中。例1
設(A)=0A5H(10100101B),則執(zhí)行指令:SWAPA結果:(A)=5AH(01011010B)指令SWAP交換了A中高、低半字節(jié)(3~0和7~4),結果不影響標志寄存器PSW。MCS-51內(nèi)部RAM中可以設定一個后進先出(LIFO-LastInFirstOut)的區(qū)域稱作堆棧.堆棧指針SP指出堆棧的棧頂位置。堆棧操作指令只有2條,即:壓入(PUSH)和彈出(POP)。壓入指令:PUSHdirect ;SP←SP+1,((SP))←(direct)彈出指令:POPdirect ;((SP))←(direct),SP←SP-1五、堆棧操作指令形式1 PUSHA ;保護A中數(shù)據(jù)
PUSHPSW;保護標志寄存器中數(shù)據(jù)
… ;
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年防靜電中空板項目可行性研究報告
- 陜西師范大學《房車營地運營管理》2023-2024學年第一學期期末試卷
- 陜西藝術職業(yè)學院《圖像分析與處理》2023-2024學年第一學期期末試卷
- 房屋修建貼地磚合同范例
- 2024年真彩色多路同時插播系統(tǒng)項目可行性研究報告
- 2024年生化制劑項目可行性研究報告
- 動漫行業(yè)合同范例
- 店鋪合伙合同范例
- 工商裝修合同范例
- 四年級數(shù)學(除數(shù)是兩位數(shù))計算題專項練習及答案
- 設計一臥式單面多軸鉆孔組合機床動力滑臺的液壓系統(tǒng)
- 行政事業(yè)單位管理辦法
- 蓄能器的基本功能
- 《典范英語》(1a)評價方案
- 煤礦井下有毒有害氣體管理規(guī)定
- 戶口本日文翻譯樣文(模板)
- 關于調整污水處理費征收標準的申請
- 倉儲合同案例分析(共6篇)
- 應急預案評審要素表
- 九年級上冊數(shù)學知識點考點
- 研究開發(fā)費用加計扣除的鑒證報告記錄要求
評論
0/150
提交評論