版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第3章8051的指令系統(tǒng)
介紹AT89C51匯編語言的指令系統(tǒng)。指令系統(tǒng)概述
AT89C51的基本指令共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í)鐘振蕩周期)。12MHz晶振:機(jī)器周期為1
s。3.1指令系統(tǒng)的尋址方式共7種尋址方式。
1.寄存器尋址
尋址方式就是在指令中說明操作數(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。除了以單元地址的形式外,還可用寄存器符號的形式給出。例如:
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只對ROM尋址只有3條:
MOVCA,@A+DPTR MOVCA,@A+PC JMP@A+DPTR例如:指令MOVCA,@A+DPTR
其中A的原有內(nèi)容為05H,DPTR的內(nèi)容為0400H,該指令執(zhí)行的結(jié)果是把程序存儲器0405H單元的內(nèi)容傳送給A。6.位尋址
MCS-51有位處理功能,可以對數(shù)據(jù)位進(jìn)行操作。尋址范圍:所有位
例如:MOVC,40H
=》MOVC,(28H).0(1)片內(nèi)RAM中的位尋址區(qū)。2種表示方法:位地址和單元地址加上位,(2)可位尋址的SFR
4種表示方法:直接使用位地址。位名稱的表示方法。單元地址加位數(shù)的表示方法。d.特殊功能寄存器符號加位數(shù)的表示方法。MOVC,F0==MOVC,0D5H==MOVC,PSW.5==MOVC,(0D0H).57.相對尋址:
程序轉(zhuǎn)移指令中
在相對尋址的轉(zhuǎn)移指令中,給出了地址偏移量,以“rel”表示,即把PC的當(dāng)前值加上偏移量就構(gòu)成了程序轉(zhuǎn)移的目的地址:目的地址=轉(zhuǎn)移指令所在的地址+轉(zhuǎn)移指令的字節(jié)數(shù)+rel 偏移量rel是一帶符號的8位二進(jìn)制數(shù)補(bǔ)碼數(shù)。范圍是:–128-+127
尋址空間:ROM7種尋址方式及尋址空間,見課本表格。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ù)。相對轉(zhuǎn)移指令中的偏移量,為8位的帶符號補(bǔ)碼數(shù)。RnRiDirect#data#data16rel指令中符號的意義:數(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;
注:無
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)),寫外部RAM/IOMOVX@Ri,A;(A)→((Ri)),寫外部RAM/IO
注意:RD*或WR*信號有效。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程序存儲器中任意安排,一個(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對標(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沒有進(jìn)位,或者位7有進(jìn)位,而位6沒有,則溢出標(biāo)志位OV置“1”,否則清“0”O(jiān)V。溢出標(biāo)志位OV的狀態(tài),只有在帶符號數(shù)加法運(yùn)算時(shí)才有意義。當(dāng)兩個(gè)帶符號數(shù)相加時(shí),OV=1,表示加法運(yùn)算超出了累加器A所能表示的帶符號數(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注無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.無條件轉(zhuǎn)移指令跳轉(zhuǎn)范圍AJMPaddrllSJMPrelLJMPaddr16JMP@A+DPTR211=2KBrel:有符號數(shù)前128B后127B之間216=64KB間接轉(zhuǎn)移A8位無符號數(shù)+DPTR16位64KB跳轉(zhuǎn)的目的地址=PC+本條指令字節(jié)+addr在編寫程序時(shí),直接寫上要轉(zhuǎn)向的目標(biāo)地址標(biāo)號就可以。例如:
LOOP: MOVA,R6
┇
SJMPLOOP ┇程序在匯編時(shí),由匯編程序自動計(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)林牧漁前臺服務(wù)總結(jié)
- 出院護(hù)理護(hù)士協(xié)助患者出院
- 化妝美容品銷售工作總結(jié)
- 高層建筑消防安全策略培訓(xùn)
- 歐美電影大全(EuropeanandAmericanmovies)
- 能源戰(zhàn)爭(一)應(yīng)可之譯
- 口腔解剖講解
- 空氣比熱容溫度對照表
- 廣東省經(jīng)濟(jì)管理干部學(xué)院
- 各種煤氣的成分及主要性質(zhì)
- 古詩詞1000首
- 描寫春節(jié)燃放炮竹鞭炮古詩詞45首精選
- 我的專業(yè)成長故事
- 類風(fēng)濕關(guān)節(jié)炎第九版內(nèi)科學(xué)課件
- 花紋鋼板理論重量表(精品)
- 企業(yè)投融資管理流程(64P)
- Harris-髖關(guān)節(jié)功能評分標(biāo)準(zhǔn)(共1頁)
- 養(yǎng)老金核定表
- 【納棺夫日記】
- 《鐵路貨車運(yùn)用維修規(guī)程》2018年10月
- ISO9001-2015中文版(完整)
評論
0/150
提交評論