




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第三章
指令系統(tǒng)----89C51單片機(jī)的指令系統(tǒng)主講:武桐§3.389C51單片機(jī)的指令系統(tǒng)概述:MCS-51指令系統(tǒng)由111條指令組成。其中單字節(jié)指令49條,雙字節(jié)指令45條,三字節(jié)指令17條。從指令執(zhí)行時(shí)間看,單周期指令64條,雙周期45條,只有乘、除指令為4個(gè)周期?!?.389C51單片機(jī)的指令系統(tǒng)89C51指令系統(tǒng)可分為五大類
[1]數(shù)據(jù)傳送指令:28條
[2]算術(shù)運(yùn)算指令:24條
[3]邏輯運(yùn)算及移位指令:25條
[4]控制轉(zhuǎn)移指令:17條
[5]位操作指令(布爾操作):17條3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)---使用最頻繁的指令CPU在進(jìn)行算術(shù)和邏輯運(yùn)算時(shí),總需要有操作數(shù),因此,數(shù)據(jù)的傳送是一種最基本、最主要的操作。數(shù)據(jù)傳送類指令共28條,是將源地址單元的內(nèi)容送到目的地址單元去。指令執(zhí)行后,源操作數(shù)不變,目的操作數(shù)被源操作數(shù)取代,或者二者互換。3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)以累加器A為目的操作數(shù)的指令(4條,即4種尋址方式)以寄存器Rn為目的操作數(shù)的指令(3條)以直接地址為目的操作數(shù)的指令(5條)以間接地址為目的操作數(shù)的指令(3條)十六位數(shù)據(jù)傳送指令(1條)查表指令(2條)累加器A與片外RAM傳送指令(4條)棧操作指令(2條)交換指令(4條)數(shù)據(jù)傳送類指令用到的助記符有:MOV、MOVX、MOVC、XCH、XCHD、PUSH、POP7種。3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)---使用最頻繁的指令數(shù)據(jù)傳送類指令不影響標(biāo)志位,這里所指的標(biāo)志是指Cy、Ac和OV,但不包括檢驗(yàn)累加器奇偶性的標(biāo)志位P。3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)(1)以累加器A為目的操作數(shù)的指令(4條)3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)(1)以累加器A為目的操作數(shù)的指令(4條)MOVA,R6;(R6)
A寄存器尋址MOVA,@R0;((R0))
A間接尋址MOVA,70H;(70H)
A直接尋址MOVA,#78H;78H
A立即尋址例如:3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)(2)以寄存器Rn為目的操作數(shù)的指令(3條)例如:(A)=78H,(R5)=47H,(70H)=F2H,執(zhí)行指令:MOVR5,A ;(A)
R5,
(R5)=78HMOVR5,70H;(70H)
R5,(R5)=F2HMOVR5,#A3H;A3H
R5,(R5)=A3H注意在89C51指令系統(tǒng)中沒有“MOVRn,Rn”傳送指令3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)(3)以直接地址為目的操作數(shù)的指令(5條)匯編指令格式機(jī)器碼格式操作注釋MOVdirect,A 11110101direct(A)→direct將累加器A中內(nèi)容傳送到直接地址direct所指出的片內(nèi)存儲(chǔ)單元中。MOVdirect,Rn 10001rrrdirect(Rn)→
direct將工作寄存器Rn(即R0-R7)中內(nèi)容傳送到直接地址direct所指出的片內(nèi)存儲(chǔ)單元中MOVdirectdirect10000101源direct目的direct(源direct)→目的direct將直接地址源direct所指出的片內(nèi)存儲(chǔ)單元中內(nèi)容傳送到直接地址目的direct所指出的片內(nèi)存儲(chǔ)單元中3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)匯編指令格式機(jī)器碼格式操作注釋MOVdirect,@Ri1000011idirect((Ri))→
direct將間接尋址(Ri為R0或R1)所得的片內(nèi)RAM單元內(nèi)容傳送到直接地址direct所指出的片內(nèi)存儲(chǔ)單元中MOVdirect,#data01110101direct#data#data
→
direct將立即數(shù)傳送到直接地址direct所指出的片內(nèi)存儲(chǔ)單元中這組指令的功能是把源操作數(shù)所指定的內(nèi)容送入由直接地址direct所指出的片內(nèi)存儲(chǔ)單元中。MOV 30H,40H;(40H)
30H直接尋址等效于:MOV A,40H;(40H)
AMOV 30H,A;(A)
30H寄存器尋址3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)例如:(3)以直接地址為目的操作數(shù)的指令(5條)3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)例如:(4)以寄存器間接地址為目的操作數(shù)的指令(3條)(Ri)表示Ri中的內(nèi)容為指定的RAM單元。設(shè):(30H)=6FH,(R1)=40H,執(zhí)行:MOV@R1,30H;結(jié)果:(40H)=6FH3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)MOV指令在片內(nèi)存儲(chǔ)器的操作功能如圖3-6示。@RiRn#data
A
direct3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)(5)十六位數(shù)據(jù)傳送指令(1條)匯編指令格式機(jī)器碼格式操作注釋MOVDPTR,#data1610010000高位字節(jié)低位字節(jié)dataH→DPHdataL→DPL將高8位立即數(shù)dataH送入DPH,低8位立即數(shù)dataL送入DPL。*這條指令的功能是把16位常數(shù)送入DPTR。這條指令的執(zhí)行結(jié)果把高8位立即數(shù)送入DPH,低8位立即數(shù)送入DPL。*這是整個(gè)指令系統(tǒng)唯一的一條16位數(shù)據(jù)傳送指令,用來設(shè)置地址指針。地址指針DPTR由DPH和DPL組成。3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)例如:(5)十六位數(shù)據(jù)傳送指令(1條)MOVDPTR#1234H;#1234
DPTR;
(DPTR)=1234H,(DPH)=12H,(DPL)=34H3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)(6)查表指令(2條)匯編指令格式機(jī)器碼格式操作注釋MOVCA,@A+DPTR;10010011先(PC)+1→PC,后((A)+(DPTR))→A(遠(yuǎn)程查表)MOVCA,@A+PC;10000011先(PC)+1→PC,后((A)+(PC))→A(近程查表)
在89C51指令系統(tǒng)中,有2條極為有用的查表指令,其數(shù)據(jù)表格放在程序存儲(chǔ)器中?;刂芳拇嫫?變址寄存器間接尋址@PC+A(程序存儲(chǔ)器0-64K)基地址寄存器+變址寄存器間接尋址@DPTR+A(程序存儲(chǔ)器0-64K)累加器A圖3-7程序存貯器傳送(查表)3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)(6)查表指令(2條)
MOVCA,@A+PC近程查表
這條指令以PC作基址寄存器,A的內(nèi)容作為無符號(hào)整數(shù)和PC的內(nèi)容相加后得到一個(gè)16位的地址,由該地址指出的程序存儲(chǔ)單元的內(nèi)容送達(dá)累加器A。
此指令的優(yōu)點(diǎn)是不改變特殊功能寄存器及PC的狀態(tài),根據(jù)A的內(nèi)容就可以取出表格中的常數(shù)。缺點(diǎn)是表格只能存放在該條查表指令后面的256個(gè)單元之內(nèi),表格的大小受到限制,而且表格只能被一段程序所利用。3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)
MOVCA,@A+PC近程查表3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)1010H02H1011H04H1012H06H1013H08HROM執(zhí)行程序:1000H:MOVA,#0DH;#0DH
A,查表的偏移量
1002H:MOVCA,@A+PC;(0DH+1003H)
A1003H:MOVR0,A;(A)
R0結(jié)果為:(A)=02H,(R0)=02H,(PC)=1004H
MOVCA,@A+DPTR遠(yuǎn)程查表這條指令以DPTR作為基址寄存器,A的內(nèi)容作為無符號(hào)整數(shù)和DPTR的內(nèi)容相加后得到一個(gè)16位的地址,由該地址指出的程序存儲(chǔ)單元的內(nèi)容送達(dá)累加器A。
這條查表指令的執(zhí)行結(jié)果只和指針DPTR及累加器A的內(nèi)容有關(guān),與該指令存放的地址及常數(shù)表格存放的地址無關(guān),因此表格的大小和位置可以在64K程序存儲(chǔ)器中任意安排,一個(gè)表格可以為各個(gè)程序塊公用。3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)(6)查表指令(2條)
MOVCA,@A+DPTR遠(yuǎn)程查表3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)7010H02H7011H04H7012H06H7013H08HROM執(zhí)行程序:1000H:MOVA,#10H;#10H
A1002H:PUSHDPH;DPH入棧1004H:PUSHDPL;DPL入棧1006H:
MOVDPTR,#7000H;7000H
DPRT1009H:
MOVCA,@A+DPTR;(10H+7000H)A100AH:
POPDPL;DPL出棧100CH:
POPDPH;DPH出棧結(jié)果為:(A)=02H,(PC)=100EH,(DPTR)=原值保護(hù)DPRT恢復(fù)DPRT,先進(jìn)后出例:求平方數(shù)MOVA,#03H ADDA,#rel MOVCA,@A+PC MOV20H,AHERE:SJMP HERETABLE:DB00H,01H,04H,09H DB16H,25H,36H,49HDB64H,81H 0FFEH1000H1002H1003H1005H1007H例:求平方數(shù)MOVA,#03H MOVDPTR,#TABLE MOVCA,@A+DPTR MOV20H,AHERE:SJMP HERETABLE:DB00H,01H,04H,09H DB16H,25H,36H,49HDB64H,81H 3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)(7)累加器A與片外RAM傳送指令(4條)在8051指令系統(tǒng)中,CPU對(duì)片外RAM的訪問只能用寄存器間接尋址的方式,且僅有四條指令:*第2,4兩條指令以DPTR為片外數(shù)據(jù)存儲(chǔ)器16位地址指針,尋址范圍達(dá)整個(gè)64KB片外數(shù)據(jù)存儲(chǔ)器空間。其功能是DPTR所指定的片外數(shù)據(jù)存儲(chǔ)器與累加器A之間傳送數(shù)據(jù)。3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)(7)累加器A與片外RAM傳送指令(4條)MOVXA,@DPTR
;((DPTR))
A,讀外部RAM/IOMOVX@DPTR,A
;(A)
(DPTR),寫外部RAM/IO*第1,3兩條指令是用R0或R1作低8位地址指針,由P0口送出,尋址范圍是片外256字節(jié)的數(shù)據(jù)存儲(chǔ)器。這兩條指令完成以R0或R1為地址指針的片外數(shù)據(jù)存儲(chǔ)器與累加器A之間的傳送數(shù)據(jù)。3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)(7)累加器A與片外RAM傳送指令(4條)MOVXA,@Ri
;((Ri))
A,讀外部RAM/IOMOVX@Ri,A
;(A)
((Ri)),寫外部RAM/IO圖3-8外部數(shù)據(jù)存儲(chǔ)器傳送操作累加器A寄存器間接尋址
寄存器間接尋址@R1,@R0@DPTR(外RAM0-255B)
(外RAM0-64KB)3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)(7)累加器A與片外RAM傳送指令(4條)上述四條指令的操作如圖3-8所示:3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)(7)累加器A與片外RAM傳送指令(4條)將片外2010H單元內(nèi)容送到片內(nèi)30H單元中例如:MOV DPTR,#2010HMOVXA,@DPTRMOV 30H,A3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)(7)累加器A與片外RAM傳送指令(4條)將片外RAM1000H單元中的數(shù)據(jù)
片外RAM2000H單元例如:MOV DPTR,#1000HMOVX A,@DPTRMOV DPTR,#2000HMOVX @DPTR,A3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)(8)棧操作指令(2條)*在89C51片內(nèi)RAM的128字節(jié)單元中,設(shè)定一個(gè)區(qū)域作為堆棧(一般設(shè)在30H~7FH單元中);*數(shù)據(jù)的進(jìn)棧出棧由指針SP統(tǒng)一管理,原則是“先進(jìn)后出,后進(jìn)先出”。3.3.1數(shù)據(jù)傳送指令§3.389C51單片機(jī)的指令系統(tǒng)例如:(8)棧操作指令(2條)當(dāng)(SP)=30H,(A)=40H,(B)=70H時(shí)執(zhí)行下列指令:40H
31H70H
32H10H
30HSPPUSHA
(SP)+1=31H
SP(A)
31HPUSHB
(SP)+1=32H
SP(B)
32H棧底棧頂結(jié)果:(31H)=40H,(32H)=70H(SP)=32H將累加器A中內(nèi)容傳送到直接地址direct所指出的片內(nèi)存儲(chǔ)單元中。其中單字節(jié)指令49條,雙字節(jié)指令45條,三字節(jié)指令17條。MOVCA,@A+PC近程查表11110101MOVXA,@DPTR;((DPTR))A,讀外部RAM/IO該指令將累加器A的低4位與R0或R1所指出的片內(nèi)RAM單元的低4位數(shù)據(jù)相互交換,各自的高4位不變。1003H:MOVR0,A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 呼倫貝爾民族風(fēng)情園旅游策劃及概念性規(guī)劃
- 狂犬病預(yù)防知識(shí)課件
- 耕地保護(hù)知識(shí)考試試題及答案
- 初級(jí)車工考試試題及答案
- 阜陽叉車考試試題及答案
- 電工證書考試試題及答案
- 干部憲法考試試題及答案
- 父親班會(huì)課件
- 二級(jí)司爐考試試題及答案
- 殘聯(lián)職位考試試題及答案
- DL∕T 1099-2009 防振錘技術(shù)條件和試驗(yàn)方法
- 2024年春七年級(jí)歷史下冊(cè) 第一單元 隋唐時(shí)期 繁榮與開放的時(shí)代 第1課 隋朝的統(tǒng)一與滅亡教案 新人教版
- CJ/T 156-2001 溝槽式管接頭
- 黑龍江省齊齊哈爾市五縣聯(lián)考2023-2024學(xué)年七年級(jí)下學(xué)期期末數(shù)學(xué)試題
- CJJT81-2013 城鎮(zhèn)供熱直埋熱水管道技術(shù)規(guī)程
- 留置導(dǎo)尿法操作評(píng)分標(biāo)準(zhǔn)
- 圖集04S206自動(dòng)噴水與水噴霧滅火設(shè)施安裝
- IQC來料不合格品處理流程管理規(guī)定
- 2023年拍賣師考試真題模擬匯編(共469題)
- MOOC 引領(lǐng)世界的中國乒乓-西南交通大學(xué) 中國大學(xué)慕課答案
- 低碳示范區(qū)評(píng)價(jià)技術(shù)規(guī)范低碳景區(qū)
評(píng)論
0/150
提交評(píng)論