版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
單片機與接口技術第5日指令系統(tǒng)與匯編語言(2)無條件轉(zhuǎn)移指令(4條)
4.控制轉(zhuǎn)移指令(17條)
1.絕對轉(zhuǎn)移指令AJMPaddr11;PC+2PC,addr11PC.10~PC.0···PCPC+1PCPCPC+2PCA10A9A800001A7A6A5A4A3A2A1A0操作碼(第一字節(jié))操作數(shù)(第二字節(jié))PC高5位(保持不變)PC低11位程序計數(shù)器PC注意:目標地址必須與它下面的指令存放地址在同一個2K字節(jié)區(qū)域內(nèi)。2.基寄存器加變址寄存器間接轉(zhuǎn)移指令(散轉(zhuǎn)指令)JMP@A+DPTR;((A))+(DPTR)PC功能:改變程序計數(shù)器PC中的內(nèi)容,控制程序執(zhí)行的流向,實現(xiàn)程序分支轉(zhuǎn)向。除了CJNE影響PSW的進位標志位Cy外,其余均不影響PSW的各標志位。
3.短(相對)轉(zhuǎn)移指令SJMPrel;PC+2PC,rel+PC
PC···PCPC+1PCPCPC+2PCPCPC+2+relPC4.長轉(zhuǎn)移指令LJMPaddr16;addr16PC0-PC15注意:轉(zhuǎn)向的目標地址只能在下條指令前128字節(jié)到后127字節(jié)注意:該指令可以轉(zhuǎn)移到64KB程序存儲器中的任意位置。注意:(1)使用轉(zhuǎn)移指令時,指令中的地址或偏移量均可采用標號,只有在執(zhí)行前才被匯編成實際的二進制地址。(2)指令的轉(zhuǎn)移范圍:在執(zhí)行當前轉(zhuǎn)移指令后的PC值的基礎上:
長轉(zhuǎn)移指令LJMP:64KB
絕對轉(zhuǎn)移指令AJMP:2KB
相對(短)轉(zhuǎn)移指令SJMP:-128~+127(用補碼表示)間接(散)轉(zhuǎn)移指令JMP:64KB(3)相對(短)轉(zhuǎn)移指令SJMPrel中地址偏移量的計算:
rel=轉(zhuǎn)移目標地址-轉(zhuǎn)移指令地址(當前PC值)-2(4)原地踏步(暫停當前的程序,并不是真的停機)的實現(xiàn)
SJMP$
或HERE:SJMPHERE(5)間接(散)轉(zhuǎn)移指令:JMP@A+DPTR常用于實現(xiàn)程序的分支轉(zhuǎn)移(散轉(zhuǎn))。DPTR為轉(zhuǎn)移目的的起始地址,A為轉(zhuǎn)移目的的偏移量。1.累加器為零/非零轉(zhuǎn)移指令(2條)2.減1非零轉(zhuǎn)移指令(2條)DJNZ
Rn,rel;(Rn)-1≠0則轉(zhuǎn)移
(PC)←(PC)+2+rel
(Rn)=0則順序執(zhí)行(PC)←(PC)+2DJNZ
direct,rel;(direct)-1≠0則轉(zhuǎn)移(PC)←(PC)+3+rel
(direct)=0則順序執(zhí)行(PC)←(PC)+3
在規(guī)定的條件滿足時進行程序轉(zhuǎn)移,否則程序往下順序執(zhí)行。JZ
rel;若(A)=0,則轉(zhuǎn)移
(PC)←(PC)+2+rel
若(A)≠0,則順序執(zhí)行(PC)←(PC)+2
JNZ
rel;若(A)≠0,則轉(zhuǎn)移(PC)←(PC)+2+rel
若(A)=0,則順序執(zhí)行(PC)←(PC)+2
條件轉(zhuǎn)移指令(8條)
3.比較轉(zhuǎn)移指令(4條)CJNE
A,direct,relCJNE
A,#data,relCJNERn,#data,relCJNE@Ri,#data,rel助記符格式相應操作機器周期CJNEA,#data,rel
若A≠#data,則PCPC+rel,否則順序執(zhí)行;若A<#data,則CY=1,否則CY=02CJNERn,#data,rel若Rn≠#data,則PCPC+rel,否則順序執(zhí)行;若Rn<#data,則CY=1,否則CY=02CJNE@Ri,#data,rel若(Ri)≠#data,則PCPC+rel,否則順序執(zhí)行;若(Ri)<#data,則CY=1,否則CY=02CJNEA,direct,rel若A≠(direct),則PCPC+rel,否則順序執(zhí)行;若A<(direct),則CY=1,否則CY=02功能:
把兩個操作數(shù)進行比較,以比較的結(jié)果作為條件來控制程序的轉(zhuǎn)移。
若(目的操作數(shù))=(源操作數(shù)),則程序繼續(xù)執(zhí)行,(PC)←(PC)+3若(目的操作數(shù))<(源操作數(shù)),則程序轉(zhuǎn)移,
(PC)←(PC)+rel+3,Cy←1若(目的操作數(shù))>(源操作數(shù)),則程序轉(zhuǎn)移,
(PC)←(PC)+rel+3,Cy←0注意:
比較轉(zhuǎn)移指令的比較是通過兩操作數(shù)的減法實現(xiàn)的,影響Cy標志位,不保存最后的差值,兩個操作數(shù)的內(nèi)容不變。條件轉(zhuǎn)移指令均為相對轉(zhuǎn)移指令,因此指令的轉(zhuǎn)移范圍十分有限。若要實現(xiàn)64KB范圍內(nèi)的轉(zhuǎn)移,則可以借助于一條長轉(zhuǎn)移指令的過渡來實現(xiàn)。5.子程序調(diào)用與返回指令(4條)
具有完整功能的程序段定義為子程序,供主程序調(diào)用。功能:供主程序在需要時調(diào)用。子程序可以在程序中反復多次使用,以簡化源程序的書寫。特點:子程序可以嵌套,有利于模塊化程序設計。
主程序與子程序之間的調(diào)用關系如下左圖所示,兩級子程序嵌套的示意圖如下右圖所示。
為了實現(xiàn)主程序?qū)ψ映绦虻囊淮瓮暾{(diào)用,必須有子程序調(diào)用指令和子程序返回指令。子程序調(diào)用指令在主程序中使用,而子程序返回指令則是子程序的最后一條指令。調(diào)用與返回指令是成對使用的。子程序調(diào)用指令:必須具有自動把程序計數(shù)器PC中的斷點地址保護到堆棧中,且將子程序入口地址自動送入程序計數(shù)器PC中的功能。子程序返回指令:必須具有自動把堆棧中的斷點地址恢復到程序計數(shù)器PC中的功能。注意:子程序調(diào)用時應注意入口參數(shù)設置,子程序返回時應注意出口參數(shù)的傳遞。1.絕對短調(diào)用指令
ACALLaddr11;(PC)←(PC)+2,
(SP)←(SP)+1,(SP)←(PC)7~0,(SP)←(SP)+1,
(SP)←(PC)15~8,(PC)10~0←addr11
其中:addr11為11位地址,實際編程時可以用符號地址。并且只能在2KB范圍以內(nèi)調(diào)用子程序。2.絕對長調(diào)用指令
LCALLaddr16;(PC)←(PC)+3,
(SP)←(SP)+1,(SP)←(PC)7~0,(SP)←(SP)+1,
(SP)←(PC)15~8,(PC)15~0←addr16
其中:addr16為16位地址,實際編程時可以用符號地址??梢栽?4KB范圍以內(nèi)調(diào)用子程序。3.子程序返回指令
RET;(PC)15~8←((SP)),(SP)←(SP)1,
(PC)7~0←((SP)),(SP)←(SP)14.中斷返回指令
RETI;(PC)15~8←((SP)),(SP)←(SP)1,
(PC)7~0←((SP)),(SP)←(SP)1注:中斷服務程序是一種特殊的子程序,它是在計算機響應中斷時,由硬件完成調(diào)用而進入相應的中斷服務程序。RETI指令與RET指令相仿,區(qū)別在于RET是從子程序返回,RETI是從中斷服務程序返回。無論是RET還是RETI都是子程序執(zhí)行的最后一條指令??詹僮髦噶頝OP(1條)
NOP;(PC)←(PC)+1功能:不執(zhí)行任何操作,消耗了一個機器周期,常用于軟件延時或在程序可靠性設計中用來穩(wěn)定程序。特點:NOP占據(jù)一個單元的存儲空間,除了使PC的內(nèi)容加1外,CPU不產(chǎn)生任何操作結(jié)果,只是消耗了一個機器周期。6.位操作指令(17條)
位操作(布爾變量操作):操作數(shù)不是字節(jié),而是字節(jié)中的某個位。每位的取值只能取0或1。指令的尋址范圍:片內(nèi)RAM位尋址區(qū)20H~2FH,SFR中的11個可位尋址特殊寄存器中的83個可尋址位。特點:以進位標志Cy作為位累加器,可以實現(xiàn)布爾變量的傳送、運算和控制轉(zhuǎn)移等功能。指令中的位地址的表達方式:直接地址方式(如0AFH)、特殊功能寄存器名.位序號(如PSW.3)、字節(jié)地址.位序號(如0D0H.0)、位名稱方式(如F0)和用戶定義名稱等幾種方式。RAM位尋址區(qū)位地址映象7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D05單元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07MSB
位地址
LSB7C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800特殊功能寄存器位地址映象D7F7E7CYD7—B7AFA7SM09F97TF18F87D6F6E6ACD6—B6—A6SM19E96TR18E86D5F5E5F0D5—B5—A5SM29D95TF08D85D4F4E4RS1D4PSBCB4ESACA4REN9C94TR08C84D3F3E3RS0D3PT1BBB3ET1ABA3TB89B93IE18B83D2F2E2OVD2PX1BAB2EX1AAA2RB89A92IT18A82D1F1E1F1D1PT0B9B1ET0A9A1TI9991IE08981D0F0E0PD0PX0B8B0EX0A8A0RI9890TF08880特殊功能寄存器BACCPSWIPP3IEP2SCONP1TCONP0位變量傳送指令(2條)
MOV
C,bitMOV
bit,C單元地址7E766E665E564E463E362E261E16067D756D655D554D453D352D251D150D052FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07
MSB位地址LSB7C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800MOVC,0EH0E(21H).6
CY助記符格式機器碼(B)相應操作指令說明機器周期MOVC,bit10100010CYbit位傳送指令,結(jié)果影響CY標志2MOVbit,C10010010bitCY位傳送指令,結(jié)果不影響PSW2位變量修改指令(6條)
CLRCCLRbitSETBCSETBbitCPLCCPLbit助記符格式機器碼(B)相應操作指令說明機器周期CLRC11000011CY0位清0指令,結(jié)果影響CY標志1CLRbit11000010bitbit0位清0指令,結(jié)果不影響PSW1SETBC11010011CY1位置1指令,結(jié)果影響CY標志1SETBbitbit1位置1指令,結(jié)果不影響PSW111010010bitCPLC10110011位取反指令2CPLbit10110010位取反指令,結(jié)果不影響CY2CYCYbitbit位變量邏輯操作指令(4條)
ANLC,bitANLC,/bitORLC,bitORL
C,/bit助記符格式機器碼(B)相應操作指令說明機器周期ANLC,bit10000010bitCYCY∧bit位與指令2ANLC/bit10110010bit位與指令2ORL,bit01110010bitCYCY∨bit位或指令2ORLC/bit10100010bit位或指令2CYCY∧bitCYCY∨bit例1:MOVC,00HANLC,P1.1;(20H).0CY;(C)^(P1.1)CY例2:MOVC,6EHORLC,/P1.1;(2DH).6CY;(C)∨(P1.1)CY位條件(控制)轉(zhuǎn)移指令(5條)
特點:以位的狀態(tài)作為實現(xiàn)程序轉(zhuǎn)移的判斷條件。1.以進位標志位Cy內(nèi)容為條件的轉(zhuǎn)移指令
JCrel;若(Cy)=1,則轉(zhuǎn)移(PC)←(PC)+2+rel,否則順序執(zhí)行JNCrel;若(Cy)=0,則轉(zhuǎn)移(PC)←(PC)+2+rel,否則順序執(zhí)行2.以位地址bit內(nèi)容為條件的轉(zhuǎn)移指令
JBbit,rel;若(bit)=1,則轉(zhuǎn)移(PC)←(PC)+3+rel,否則順序執(zhí)行
JNBbit,rel;若(bit)=0,則轉(zhuǎn)移(PC)←(PC)+3+rel,否則順序執(zhí)行
JBCbit,rel;若(bit)=1,則轉(zhuǎn)移(PC)←(PC)+3+rel,且(bit)←0,否則順序執(zhí)行7.偽指令匯編語言源程序由以下兩種指令構(gòu)成匯編語句(指令語句)偽指令(指示性語句)匯編語句的格式:
標號:
操作碼
操作數(shù) ;注釋3.
偽指令:控制匯編用的特殊指令,這些指令不屬于指令系統(tǒng),不產(chǎn)生機器代碼。
常用的偽指令ORG定位目的程序的起始地址。格式: ORG表達式表達式必須為16位地址值。如:ORG0000H
DS
自此開始保留幾個字節(jié)不用。
如:
ORG 1000H TEMP:DS10
END匯編語言程序結(jié)束偽指令。一定放在程序末尾!EQU賦值偽指令。
格式:字符名稱EQU數(shù)值或匯編符號
例: AA EQU 30H
K1 EQU 40H MOVA,AA ;(30H)→A MOVA,K1 ;(40H)→ADB
從指定單元開始定義(存儲)若干個字節(jié)的數(shù)據(jù)或ASCII碼字符,常用于定義數(shù)據(jù)常數(shù)表。 格式:DB
字節(jié)常數(shù)或ASCII字符例: ORG 1000H DB 34H,0DEH,’A’,’B’
DB 0AH,0BH,20DW
從指定單元開始定義(存儲)若干個字的數(shù)據(jù)或ASCII碼字符。格式:DW 字常數(shù)或ASCII字符
例: ORG2000H DW 1234H,’B’ DW 0AH,20
BIT
位地址符號指令。把位地址賦于規(guī)定的字符名稱。 格式:字符名稱 BIT 位地址例: ABC BIT P1.1 QQ BIT P3.28.匯編語言程序設計舉例
在進行應用程序設計時,首先要確定算法,算法的優(yōu)劣很大程度上決定了程序的效率,另外還要盡可能畫出程序框圖,以便于分析程序流程。具體設計中還有主程序和子程序之分,主程序又稱為前臺程序,它通常是一個無窮循環(huán),子程序又稱為后臺程序,它可以是各種功能子程序,也可以是中斷服務子程序。在主程序中完成單片機系統(tǒng)的初始化,如內(nèi)存單元清零、開放中斷等。子程序一般完成某個具體任務,如數(shù)據(jù)采集、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高端服裝分揀包裝產(chǎn)業(yè)化項目可行性研究報告模板-立項拿地
- 2025年度社交網(wǎng)絡APP用戶增長與活躍度提升合同3篇
- 湖南省張家界市桑植縣2024-2025學年七年級上學期地理期末試卷(含答案)
- 河北省承德市(2024年-2025年小學六年級語文)統(tǒng)編版階段練習((上下)學期)試卷及答案
- 河北省保定市(2024年-2025年小學六年級語文)統(tǒng)編版綜合練習((上下)學期)試卷及答案
- 二零二五年度抵債房產(chǎn)轉(zhuǎn)讓合同附環(huán)保評估及整改協(xié)議3篇
- 貴州盛華職業(yè)學院《專業(yè)英語(裝控)》2023-2024學年第一學期期末試卷
- 二零二五年度套裝門研發(fā)設計與技術轉(zhuǎn)讓合同2篇
- 貴州黔南科技學院《生物制藥工程》2023-2024學年第一學期期末試卷
- 二零二五年度個人股權(quán)優(yōu)先購買權(quán)協(xié)議書3篇
- 《ESPEN重癥病人營養(yǎng)指南(2023版)》解讀課件
- 智慧茶園監(jiān)控系統(tǒng)的設計
- 2024年宜賓發(fā)展產(chǎn)城投資限公司第三批員工公開招聘高頻難、易錯點500題模擬試題附帶答案詳解
- 2024年省宿州市“宿事速辦”12345政務服務便民熱線服務中心招考15名工作人員高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 2024年安徽省行政執(zhí)法人員資格認證考試試題含答案
- 中國2型糖尿病運動治療指南 (2024版)
- 人教版初中九年級全冊英語單詞表
- 人教版小學二年級數(shù)學下冊數(shù)學口算、脫式、豎式、應用題
- DZ∕T 0405-2022 無人機航空磁測數(shù)據(jù)采集技術要求(正式版)
- 會計業(yè)務培訓方案(2篇)
- 楚天華通醫(yī)藥設備有限公司純化水設備介紹A32017年3月1日
評論
0/150
提交評論