版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
單片機(jī)原理及應(yīng)用第2章51系列單片機(jī)的指令系統(tǒng)引言2.1尋址方式2.2數(shù)據(jù)傳送與交換指令2.3算術(shù)運(yùn)算和邏輯運(yùn)算指令2.4控制轉(zhuǎn)移指令2.5位操作指令2.6本章小結(jié)一、邏輯運(yùn)算類指令(24條)
ANLA,Rn
/direct
/@Ri
/#data
ANLdirect,A
/#data
指令功能:將目的操作數(shù)的內(nèi)容和源操作數(shù)的內(nèi)容按位邏輯“與”運(yùn)算,結(jié)果送目的操作數(shù)所指的地址單元。前四條指令執(zhí)行后影響P標(biāo)志,后兩條指令,若直接地址為I/O端口,則為“讀-改寫”操作。1.邏輯與指令(6條)例:已知(30H)=56H,請將30H單元的高4位清0,低4位保持不變。
XRLA,Rn
/direct
/@Ri
/#data
XRLdirect,A
/#data
指令功能:將目的操作數(shù)的內(nèi)容和源操作數(shù)的內(nèi)容按位邏輯“異或”運(yùn)算,結(jié)果送目的操作數(shù)所指的地址單元。前四條指令執(zhí)行后影響P標(biāo)志,后兩條指令,若直接地址為I/O端口,則為“讀-改寫”操作。3.邏輯異或指令(6條)說明:①若與0進(jìn)行異或運(yùn)算,結(jié)果保持不變;②若與1進(jìn)行異或運(yùn)算,結(jié)果取反;③自身異或等效于清0。例:將20H單元內(nèi)容1、3、5、7位保持不變,0、2、4、6位取反。
取反:CPLA
清零:CLRA
4.清0與取反指令(2條)5.循環(huán)移位指令(4條)RLA
RRARLCARRCAA.7 A.0A.7 A.0A.7 A.0CYCYA.7 A.0后兩條指令,影響P標(biāo)志和CY。綜合舉例:例1:分析下列程序段實現(xiàn)的功能:例2:編制程序求片內(nèi)RAM的20H,21H,22H單元中的數(shù)的補(bǔ)碼,并將結(jié)果仍放回到20H,21H,22H中。MOVA,directRLAMOVR1,ARLARLAADDA,R1MOVdirect,A包括以下類型:無條件轉(zhuǎn)移和條件轉(zhuǎn)移相對轉(zhuǎn)移和絕對轉(zhuǎn)移長轉(zhuǎn)移和短轉(zhuǎn)移調(diào)用與返回指令控制轉(zhuǎn)移類指令(17條)這一類指令的功能是改變指令的執(zhí)行順序,轉(zhuǎn)到指令指示的新的PC地址執(zhí)行。此類指令一般不影響PSW。跳轉(zhuǎn)的范圍不同。短轉(zhuǎn)移類指令:AJMP
addr11
長轉(zhuǎn)移類指令:LJMP
addr16
相對轉(zhuǎn)移指令:SJMPrel轉(zhuǎn)移范圍:2KB64KB-128~+127指令構(gòu)成不同。
AJMP、LJMP后跟的是絕對地址,而SJMP后跟的是相對地址。(rel=轉(zhuǎn)移的目的地址-(PC)-2)指令長度不同原則上,所有用SJMP或AJMP的地方都可以用
LJMP來替代??刂妻D(zhuǎn)移指令間接轉(zhuǎn)移指令:JMP
@A+DPTR這條指令的用途也是跳轉(zhuǎn),轉(zhuǎn)到什么地方去呢?這可不能由標(biāo)號簡單地決定了。轉(zhuǎn)移地址由A+DPTR形成,并直接送入PC。指令對A、DPTR和標(biāo)志位均無影響。本指令可代替眾多的判別跳轉(zhuǎn)指令,又稱為散轉(zhuǎn)指令,多用于多分支程序結(jié)構(gòu)中。(2)第四條指令與前三條指令相比有所不同條件轉(zhuǎn)移指令是指在滿足一定條件時進(jìn)行相對轉(zhuǎn)移,否則程序繼續(xù)執(zhí)行本指令的下一條指令。1、累加器判0轉(zhuǎn)移指令(2條)
JZ
rel
;如果A=0,則轉(zhuǎn)移,否則順序執(zhí)行。
JNZ
rel
;如果A≠0,就轉(zhuǎn)移
新的PC值=當(dāng)前PC+偏移量rel我們在編寫匯編語言源程序時,可以直接寫成:
JZ
標(biāo)號 ;即轉(zhuǎn)移到標(biāo)號處。二、條件轉(zhuǎn)移類指令(8條)例:MOVA,R0
JZL1MOVR1,#00HAJMPL2
L1:MOVR1,#0FFH
L2:SJMPL2END執(zhí)行上面這段程序:如果R0=0,結(jié)果R1=0FFH。而如果R00,則結(jié)果是R1=00H。把上面的那個例子中的JZ改成JNZ,看看程序執(zhí)行的結(jié)果是什么?如果R0=0,結(jié)果R1=00H。如果R00,結(jié)果是R1中的值為0FFH。2、比較不等轉(zhuǎn)移指令(4條)CJNEA,#data,rel
CJNEA,direct,relCJNERn,#data,relCJNE
@Ri,#data,rel
此類指令的功能是將兩個操作數(shù)比較,如果兩者相等,就順序執(zhí)行,如果不相等,就轉(zhuǎn)移。
同樣地,使用時,我們可以將rel理解成標(biāo)號,即: CJNEA,#data,標(biāo)號 CJNEA,direct,標(biāo)號 CJNERn,#data,標(biāo)號 CJNE@Ri,#data,標(biāo)號華中科技大學(xué)文華學(xué)院控制轉(zhuǎn)移指令舉例:
MOVA,R0CJNEA,#10H,L1MOVR1,#0;如R0=10H,則不轉(zhuǎn)移R1=00H;AJMPL3L1:JCL2 ;如CY=1即R0<10H,則轉(zhuǎn)移 MOVR1,#0AAH;否則CY=0即R0>10H,則轉(zhuǎn)移 AJMPL3L2:MOVR1,#0FFHL3:SJMPL3因此最終結(jié)果是:如果R0=10H,則R1=00H;如果R0>10H,則R1=0AAH;如果R0<10H,則R1=0FFH。華中科技大學(xué)文華學(xué)院控制轉(zhuǎn)移指令3、減1不為0轉(zhuǎn)移指令(2條)
DJNZRn,rel
DJNZdirect,rel
DJNZ指令的執(zhí)行過程是這樣的:它將第一個操作數(shù)中的值減1,然后看這個值是否等于0,如果等于0,就往下執(zhí)行,如果不等于0,就轉(zhuǎn)移到第二個操作數(shù)所指定的地方去。例:DJNZ10H,LOOP...LOOP:...華中科技大學(xué)文華學(xué)院控制轉(zhuǎn)移指令例:
MOV23H,#0AHCLRALOOP:ADDA,23HDJNZ23H,LOOPSJMP$上述程序段的執(zhí)行過程是:將23H單元中的數(shù)連續(xù)相加,存至A中,每加一次,23H單元中的數(shù)值減1,直至減到0,共加(23H)次。華中科技大學(xué)文華學(xué)院指令的執(zhí)行過程是:當(dāng)前PC壓棧,子程序首地址送PC,實現(xiàn)轉(zhuǎn)移。2、返回指令(2條)子程序執(zhí)行完后必須回到主程序,如何返回呢?只要執(zhí)行一條返回指令就可以了。RET ;子程序返回指令RETI ;中斷子程序返回指令兩者不能互換使用。華中科技大學(xué)文華學(xué)院四、空操作指令(1條)
NOP空操作,就是什么事也不干,停一個周期,一般用作短時間的延時。RET指令的執(zhí)行過程是:堆棧棧頂內(nèi)容(2字節(jié),調(diào)用時保存的當(dāng)前PC值)彈出給PC,實現(xiàn)返回。RETI指令:除了具有RET指令的功能實現(xiàn)程序返回外,還有對中斷優(yōu)先級狀態(tài)觸發(fā)器的清零。華中科技大學(xué)文華學(xué)院控制轉(zhuǎn)移指令思考:將內(nèi)部RAM中30H—3FH的數(shù)依次送到70H—7FH單元中,試編程實現(xiàn)。華中科技大學(xué)文華學(xué)院位操作指令一、位傳送指令
MOVC,bit;C←(bit)MOVbit,C;(bit)←C二、位置“1”和清“0”CLRbit;bit←0CLRC;Cy←0SETBbit;bit←1SETBC;Cy←1華中科技大學(xué)文華學(xué)院位操作指令三、位邏輯運(yùn)算指令(6條)
ANLC,bit;C←(C)Λ(bit)ANLC,/bit;C←(C)Λ(/bit)ORLC,bit;C←(C)V(bit)ORLC,/bit;C←(C)V(/bit)CPLC;C←/CCPLbit;bit←/bit說明:第二條指令中,先將指定的位地址中的值取出后取反,再和C相與,結(jié)果送回C。但注意,指定的位地址中的值本身并不發(fā)生變化。華中科技大學(xué)文華學(xué)院本章小結(jié)
7種尋址方式:立即、直接、寄存器、寄存器間接、
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企事業(yè)單位環(huán)境保護(hù)管理手冊
- 2025年企業(yè)并購重組與整合指南
- 超市員工培訓(xùn)及考核標(biāo)準(zhǔn)制度
- 超市商品銷售及價格調(diào)整制度
- 2026年武漢市第三十二中學(xué)招聘初中教師備考題庫及1套參考答案詳解
- 2026年深圳市第二人民醫(yī)院健康管理中心招聘備考題庫及1套完整答案詳解
- 養(yǎng)老院工作人員服務(wù)禮儀規(guī)范制度
- 2026年永昌縣中醫(yī)院招聘備考題庫及參考答案詳解
- 中國國際貨運(yùn)航空股份有限公司西南大區(qū)2026屆高校畢業(yè)生招聘備考題庫及答案詳解參考
- 2026年茂名市電白區(qū)馬踏鎮(zhèn)衛(wèi)生院公開招聘編外人員備考題庫及一套參考答案詳解
- 2026年共青團(tuán)中央所屬單位高校畢業(yè)生公開招聘66人備考題庫及參考答案詳解
- 2026年6級英語模擬真題及答案
- 2025內(nèi)蒙古鄂爾多斯市委政法委所屬事業(yè)單位引進(jìn)高層次人才3人考試題庫含答案解析(奪冠)
- 2025年全國單獨(dú)招生考試綜合試卷(附答案) 完整版2025
- 2025-2026學(xué)年外研版八年級上冊英語期末模擬考試題(含答案)
- 連鎖超市總部部門崗位職責(zé)說明書
- 2024年包頭輕工職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫附答案解析
- 洗衣液宣傳課件
- “五個帶頭”方面對照發(fā)言材料二
- TTAF 241.1-2024 支持衛(wèi)星通信的移動智能終端技術(shù)要求和測試方法 第1部分:多模天通衛(wèi)星終端
- 奶茶品牌2026年新品研發(fā)上市流程
評論
0/150
提交評論