




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章8051的指令系統(tǒng)
介紹AT89C51匯編語(yǔ)言的指令系統(tǒng)。指令系統(tǒng)概述
AT89C51的基本指令共111條,按指令所占的字節(jié)來(lái)分:
(1)單字節(jié)指令49條;
(2)雙字節(jié)指令45條;
(3)三字節(jié)指令17條。按指令的執(zhí)行時(shí)間來(lái)分:
(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í)鐘振蕩周期)。12MHz晶振:機(jī)器周期為1
s。3.1指令系統(tǒng)的尋址方式共7種尋址方式。
1.寄存器尋址
尋址方式就是在指令中說(shuō)明操作數(shù)所在地址的方法
操作數(shù)在寄存器中
MOVA,Rn;(Rn)→A,n=0~7尋址范圍:2.直接尋址
尋址范圍:
(1)4組通用工作寄存區(qū)共32個(gè)工作寄存器。(2)部分SFR,例如A、B、DPTR等。直接地址形式MOVA,40H片內(nèi)RAM的128個(gè)單元:00H~7FHSFR。除了以單元地址的形式外,還可用寄存器符號(hào)的形式給出。例如:
MOVA,80H
與MOVA,P0是等價(jià)的。3.寄存器間接尋址
尋址范圍:寄存器中存放的是操作數(shù)的地址加前綴標(biāo)志“@”
。MOVA,@Ri
;i=0或1
MOVXA,@DPTR(1)片內(nèi)RAM128B:00H~7FH,形式為@Ri(i=0,1)(2)片外64KB,形式為@DPTR
注片外RAM低256B,MOVXA,@Ri≡MOVXA,@DPTR(3)堆棧區(qū)堆棧操作指令PUSH(壓棧)和POP(出棧)使用堆棧指針(SP)作間址寄存器4.立即尋址
5.基址變址尋址:
形式:#dataMOVA,#40H只對(duì)ROM尋址只有3條:
MOVCA,@A+DPTR MOVCA,@A+PC JMP@A+DPTR例如:指令MOVCA,@A+DPTR
其中A的原有內(nèi)容為05H,DPTR的內(nèi)容為0400H,該指令執(zhí)行的結(jié)果是把程序存儲(chǔ)器0405H單元的內(nèi)容傳送給A。6.位尋址
MCS-51有位處理功能,可以對(duì)數(shù)據(jù)位進(jìn)行操作。尋址范圍:所有位
例如:MOVC,40H
=》MOVC,(28H).0(1)片內(nèi)RAM中的位尋址區(qū)。2種表示方法:位地址和單元地址加上位,(2)可位尋址的SFR
4種表示方法:直接使用位地址。位名稱的表示方法。單元地址加位數(shù)的表示方法。d.特殊功能寄存器符號(hào)加位數(shù)的表示方法。MOVC,F0==MOVC,0D5H==MOVC,PSW.5==MOVC,(0D0H).57.相對(duì)尋址:
程序轉(zhuǎn)移指令中
在相對(duì)尋址的轉(zhuǎn)移指令中,給出了地址偏移量,以“rel”表示,即把PC的當(dāng)前值加上偏移量就構(gòu)成了程序轉(zhuǎn)移的目的地址:目的地址=轉(zhuǎn)移指令所在的地址+轉(zhuǎn)移指令的字節(jié)數(shù)+rel 偏移量rel是一帶符號(hào)的8位二進(jìn)制數(shù)補(bǔ)碼數(shù)。范圍是:–128-+127
尋址空間:ROM7種尋址方式及尋址空間,見(jiàn)課本表格。3.2AT89C51指令系統(tǒng)分類介紹111條指令,按功能分類,可分為下面5大類:(1)數(shù)據(jù)傳送類(28條)
(2)算術(shù)操作類(24條(3)邏輯運(yùn)算類(25條)
(4)控制轉(zhuǎn)移類(17條)
(5)位操作類(17條)當(dāng)前寄存器區(qū)的8個(gè)工作寄存器R0~R7(n=0~7)。當(dāng)前寄存器區(qū)中可作間接尋址寄存器的2個(gè)寄存器R0、R1(i=0,1)。直接地址,包含在指令中的8位立即數(shù)。包含在指令中的16位立即數(shù)。相對(duì)轉(zhuǎn)移指令中的偏移量,為8位的帶符號(hào)補(bǔ)碼數(shù)。RnRiDirect#data#data16rel指令中符號(hào)的意義:數(shù)據(jù)指針,可用作16位的數(shù)據(jù)地址寄存器。內(nèi)部RAM或特殊功能寄存器中的直接尋址位。進(jìn)位標(biāo)志位或位處理機(jī)中的累加器。11位目的地址16位目的地址間接尋址寄存器前綴,如@Ri,@A+DPTRX中的內(nèi)容。由X尋址的單元中的內(nèi)容。箭頭右邊的內(nèi)容被箭頭左邊的內(nèi)容所取代。DPTRbitC(或Cy)addr11addr16@(X)((X))→3.2.1數(shù)據(jù)傳送類指令
MOV<目的操作數(shù)>,<源操作數(shù)>屬“復(fù)制”性質(zhì),而不是“搬家”不影響標(biāo)志位:Cy、Ac和OV,影響奇偶標(biāo)志位P。操作數(shù)的形式:A,Rn,@Ri,direct,#data1.以A為目的:
MOVA,Rn;(Rn)→A,n=0~7
MOVA,@Ri;((Ri))→A,i=0,1
MOVA,direct;(direct)→A
MOVA,#data;#data→A
例如:
MOVA,R6;(R6)→A,寄存器尋址
MOVA,70H;(70H)→A,直接尋址
MOVA,@R0;((R0))→A,間接尋址
MOVA,#78H;78H→A,立即尋址2.以Rn為目的MOVRn,AMOVRn,directMOVRn,#data3.以direct為目的
MOVdirect,A;MOV direct,Rn;MOVdirect,@Ri;MOVdirect,#data;MOVdirect1,direct2;
4.以@Ri為目的:
MOV@Ri,AMOV@Ri,direct;MOV@Ri,#data;
注:無(wú)
MOVRn,Rn×MOVRn,@Ri×MOV@Ri,Rn×MOV@Ri,@Ri×5.16位數(shù)據(jù)傳送指令:唯一的16位數(shù)據(jù)的傳送指令
MOVDPTR,#data166.堆棧操作指令PUSHdirectPOPdirect(SP)+1SP,(direct)進(jìn)棧出棧數(shù)據(jù)direct,(SP)-1SP例:
PUSHAcc PUSHB POPDPH POPDPL7.A與片外RAM:MOVX
MOVXA,@DPTR;((DPTR))→A,讀外部RAM/IOMOVXA,@Ri;((Ri))→A,讀外部RAM/IOMOVX@DPTR,A;(A)→((DPTR)),寫(xiě)外部RAM/IOMOVX@Ri,A;(A)→((Ri)),寫(xiě)外部RAM/IO
注意:RD*或WR*信號(hào)有效。8.查表指令
:讀ROMMOVC(1)MOVCA,@A+PC((PC)+(A))A例如:(A)=30H,執(zhí)行地址1000H處的指令
1000H:MOVCA,@A+PC;(1031H)A(2)MOVCA,@A+DPTR((DPTR)+(A))A例如:(DPTR)=8100H(A)=40H執(zhí)行指令
MOVCA,@A+DPTR缺點(diǎn):表格只能存放在該條查表指令后面的256個(gè)單元之內(nèi),表格的大小受到限制,且表格只能被一段程序所利用。優(yōu)點(diǎn):表格的大小和位置可以在64K程序存儲(chǔ)器中任意安排,一個(gè)表格可為各個(gè)程序塊公用。
9.字節(jié)交換指令XCHA,RnXCHA,directXCHA,@Ri例如:(A)=80H,(R7)=08H,(40H)=F0H(R0)=30H,(30H)=0FH執(zhí)行下列指令:
XCHA,R7;(A)與(R7)互換
XCHA,40H;(A)與(40H)互換
XCHA,@R0;(A)與((R0))互換結(jié)果:(A)=0FH,(R7)=80H,(40H)=08H,(30H)=F0H10.(低)半字節(jié)交換指令
XCHDA,@Ri則(A)=5EH,(60H)=39H。例如:(R0)=60H,(60H)=3EH,(A)=59H執(zhí)行完XCHDA,@R0
指令,3.1.2算術(shù)操作類指令
以A為目的操作數(shù)。影響Cy、Ac、OV。但增1和減1指令不影響。1.加法ADDADDA,RnADDA,directADDA,@RiADDA,#data影響Cy、Ac、OV對(duì)標(biāo)志位的影響:(1)如果位7有進(jìn)位,則置“1”進(jìn)位標(biāo)志Cy,否則清“0”Cy(2)如果位3有進(jìn)位,置“1”輔助進(jìn)位標(biāo)志Ac,否則清“0”Ac(3)如果位6有進(jìn)位,而位7沒(méi)有進(jìn)位,或者位7有進(jìn)位,而位6沒(méi)有,則溢出標(biāo)志位OV置“1”,否則清“0”O(jiān)V。溢出標(biāo)志位OV的狀態(tài),只有在帶符號(hào)數(shù)加法運(yùn)算時(shí)才有意義。當(dāng)兩個(gè)帶符號(hào)數(shù)相加時(shí),OV=1,表示加法運(yùn)算超出了累加器A所能表示的帶符號(hào)數(shù)的有效范圍。
例
(A)=53H,(R0)=FCH,執(zhí)行指令
ADDA,R0結(jié)果:
例
(A)=85H,(R0)=20H,(20H)=AFH,執(zhí)行指令:
ADDA,@R0
結(jié)果:(A)=4FH,Cy=1,Ac=0,OV=0,P=1(A)=34H,Cy=1,Ac=1,OV=1,P=1
2.帶進(jìn)位加法ADDC
ADDCA,Rn ADDCA,direct ADDCA,@Ri ADDCA,#data
例:(A)=85H,(20H)=FFH,Cy=1,執(zhí)行指令:
ADDCA,20H結(jié)果為:(A)=85H,Cy=1,Ac=1,OV=0,P=13.增1:INC
INCA INCRn INCdirect INC@Ri
INCDPTR不影響標(biāo)志,除(A)+1影響P外。4.帶借位的減法指令
SUBBA,RnSUBBA,directSUBBA,@RiSUBBA,#data注無(wú)SUB位6位7不同時(shí)有借位時(shí)OV=1,否則為0
6.減1:DEC
DECA DECRn DECdirect DEC@Ri不影響標(biāo)志位。
7.乘法指令
注:DECDPTR×MULAB;A×B→BA8.除法指令
DIVAB;A/B→A(商),余數(shù)→BCy=0,當(dāng)積>255,則OV=1Cy=0,當(dāng)(B)=0時(shí),OV=18.十進(jìn)制調(diào)整2個(gè)壓縮BCD碼相加調(diào)整
DAA兩個(gè)BCD碼按二進(jìn)制相加之后,必須經(jīng)本指令的調(diào)整才能得到正確的壓縮BCD碼的和數(shù)。3.2.3邏輯運(yùn)算指令1.CLRA;(A)=0CPLA;不影響標(biāo)志2.
RLA RRA RLCA RRCA除Cy,不影響其它標(biāo)志3.累加器半字節(jié)交換指令
SWAPA4.邏輯與:ANL
ANLA,Rn ANLA,direct ANLA,#dataANLA,@Ri
ANLdirect,A ANLdirect,#data5.邏輯或:ORL6.邏輯異或:XRL同上例(A)=05H,(R0)=0FDH執(zhí)行指令:
ANLA,R0 ORLA,R0 XRLA,R0(A)=05H(A)=0FDH(A)=0F8H結(jié)果:3.2.4控制轉(zhuǎn)移類指令
1.無(wú)條件轉(zhuǎn)移指令跳轉(zhuǎn)范圍AJMPaddrllSJMPrelLJMPaddr16JMP@A+DPTR211=2KBrel:有符號(hào)數(shù)前128B后127B之間216=64KB間接轉(zhuǎn)移A8位無(wú)符號(hào)數(shù)+DPTR16位64KB跳轉(zhuǎn)的目的地址=PC+本條指令字節(jié)+addr在編寫(xiě)程序時(shí),直接寫(xiě)上要轉(zhuǎn)向的目標(biāo)地址標(biāo)號(hào)就可以。例如:
LOOP: MOVA,R6
┇
SJMPLOOP ┇程序在匯編時(shí),由匯編程序自動(dòng)計(jì)算和填入偏移量。5.條件轉(zhuǎn)移指令
注;皆短轉(zhuǎn)移-128~127(1)根據(jù)(A)=?0
JZrel JNZrel(2).比較不相等轉(zhuǎn)移:CJNE CJNEA,direct,rel CJNEA,#data,rel CJNERn,#data,rel CJNE@Ri,#data,rel(3).減1不為0轉(zhuǎn)移:DJNZ用于循環(huán)
DJNZRn,rel ;n
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 禽類罐頭在國(guó)際市場(chǎng)的營(yíng)銷策略考核試卷
- 數(shù)據(jù)處理技巧試題及答案
- 貨物運(yùn)輸合同與責(zé)任保險(xiǎn)考核試卷
- 學(xué)習(xí)數(shù)據(jù)庫(kù)在微服務(wù)中的應(yīng)用模式試題及答案
- 三級(jí)計(jì)算機(jī)嵌入式考試科目調(diào)整分析試題及答案
- 公路橋梁設(shè)計(jì)相關(guān)試題及答案
- 全方向掌握公路工程執(zhí)照考試試題及答案
- 公路工程質(zhì)量驗(yàn)收標(biāo)準(zhǔn)考題及答案
- 建設(shè)安全網(wǎng)絡(luò)環(huán)境試題及答案
- 石材質(zhì)量鑒別技巧考核試卷
- 【MOOC】《創(chuàng)新創(chuàng)業(yè)與管理基礎(chǔ)》(東南大學(xué))章節(jié)中國(guó)大學(xué)慕課答案
- 庭院綠化養(yǎng)護(hù)方案
- 成語(yǔ)故事《半途而廢》課件
- 2025年全國(guó)法制宣傳日普法知識(shí)競(jìng)賽題庫(kù)及答案(共200題)
- 消防安裝工程重點(diǎn)難點(diǎn)分析及應(yīng)對(duì)措施
- 一例胃癌患者的個(gè)案護(hù)理
- 醫(yī)師人員管理制度內(nèi)容
- 政府專職消防文員筆試考試題庫(kù)(含答案)
- GB/T 44951-2024防彈材料及產(chǎn)品V50試驗(yàn)方法
- 2024年公路水運(yùn)工程試驗(yàn)檢測(cè)師《橋梁隧道工程》考試題庫(kù)大全(含真題)-上(單選題)
- 2025屆內(nèi)蒙古鄂爾多斯市康巴什區(qū)鄂爾多斯一中高考考前模擬數(shù)學(xué)試題含解析
評(píng)論
0/150
提交評(píng)論