版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
四、控制轉(zhuǎn)移指令使PC不再自動增加,強(qiáng)行改變PC的內(nèi)容,使程序轉(zhuǎn)移到指定的入口地址繼續(xù)執(zhí)行,以實現(xiàn)分枝循環(huán)、子程序調(diào)用、中斷等功能。共17條。分類:無條件轉(zhuǎn)移
條件轉(zhuǎn)移
中斷10/7/20231福州大學(xué)物理與信息工程學(xué)院四、控制轉(zhuǎn)移指令使PC不再自動增加,強(qiáng)行改變PC的內(nèi)容,使程1、無條件轉(zhuǎn)移指令長轉(zhuǎn)移指令(長跳轉(zhuǎn))LJMPaddr16;(PC)←addr163字節(jié)轉(zhuǎn)移范圍大,0~216,即64KROM10/7/20232福州大學(xué)物理與信息工程學(xué)院1、無條件轉(zhuǎn)移指令長轉(zhuǎn)移指令(長跳轉(zhuǎn))10/6/20232福短轉(zhuǎn)移指令(短跳轉(zhuǎn)、絕對跳轉(zhuǎn))AJMPaddr11將當(dāng)前PC值的高5位和add11相連PC=PC15~11a10a9a8a7a6a5a4a3a2a1a0即將add11寫入PC的第0~10位,PC的11~15位不變。10/7/20233福州大學(xué)物理與信息工程學(xué)院短轉(zhuǎn)移指令(短跳轉(zhuǎn)、絕對跳轉(zhuǎn))10/6/20233福州大學(xué)物Addr11代表的范圍是20~211=2K64K的ROM分為32頁,每頁2K,范圍分別是0000H~07FFH、0800H~0FFFH、1000H~17FFH、……F000H~F7FFH、F800H~FFFFHAJMP轉(zhuǎn)移范圍就是PC當(dāng)前值所在的2K字節(jié)頁面內(nèi),超出該尋址范圍就出錯。用于不太長的程序該指令為2字節(jié)10/7/20234福州大學(xué)物理與信息工程學(xué)院Addr11代表的范圍是20~211=2K10/6/2023例:
機(jī)器碼匯編語言
07FEH
AJMPK11;
0800H................
0E00H
K11:...............
0F80H
K12:.................
0FFEH
AJMPK12
1000H.........(PC)=(PC)+2=0800H錯誤
(PC)=(PC)+2=1000HK12不在1000H~17FFH同一頁內(nèi)10/7/20235福州大學(xué)物理與信息工程學(xué)院例:(PC)=(PC)+2=0800H10/6/20235福相對轉(zhuǎn)移指令SJMPrel;PC←(PC)+2,PC←(PC)+rel轉(zhuǎn)移范圍是當(dāng)前PC值-128~127范圍內(nèi)10/7/20236福州大學(xué)物理與信息工程學(xué)院相對轉(zhuǎn)移指令10/6/20236福州大學(xué)物理與信息工程學(xué)院例:
0100H
80rel
SJMPAAA
0102H
00
NOP
…
0123H
00
AAA:NOP
rel是一字節(jié)的偏移量,編程時通常用目標(biāo)地址標(biāo)號代替,如本例中AAA,匯編時才計算出偏移量rel,計算方法是:
rel=目標(biāo)地址-(本指令地址+02H)
=0123H-(0100H+02H)
=21H
10/7/20237福州大學(xué)物理與信息工程學(xué)院例:
0100H
80rel
注:編程時,可用標(biāo)號代替轉(zhuǎn)移目的地址AJMPNEXTSJMPNEXTLJMPNEXT原地踏步指令
HERE:SJMPHERE常寫成:SJMP$10/7/20238福州大學(xué)物理與信息工程學(xué)院注:10/6/20238福州大學(xué)物理與信息工程學(xué)院散轉(zhuǎn)指令:JMP@A+DPTR(PC)←(A)+(DPTR)若DPTR值固定,改變A的內(nèi)容,即可形成多個分枝。10/7/20239福州大學(xué)物理與信息工程學(xué)院散轉(zhuǎn)指令:10/6/20239福州大學(xué)物理與信息工程學(xué)院例:(A)=0轉(zhuǎn)到PRG0,(A)=1轉(zhuǎn)到PRG1,.......(A)=7轉(zhuǎn)到PRG7
MOVDPTR,#TABEL
RLAJMP@A+DPTRTABEL:AJMPPRG0AJMPPRG1......AJMPPRG710/7/202310福州大學(xué)物理與信息工程學(xué)院例:10/6/202310福州大學(xué)物理與信息工程學(xué)院2、調(diào)用及返回指令功能:本質(zhì)上也是無條件轉(zhuǎn)移指令。使用:子程序調(diào)用---程序中反復(fù)多次執(zhí)行的某一段程序。10/7/202311福州大學(xué)物理與信息工程學(xué)院2、調(diào)用及返回指令功能:本質(zhì)上也是無條件轉(zhuǎn)移指令。10/6/長調(diào)用指令LCALLaddr16斷點PC值進(jìn)棧保存,調(diào)用addr16地址的子程序。(PC)←(PC)+3,
(SP)←(SP)+1,((SP))←(PC7~0)
(SP)←(SP)+1,((SP))←(PC15~8)
(PC)←addr1610/7/202312福州大學(xué)物理與信息工程學(xué)院長調(diào)用指令10/6/202312福州大學(xué)物理與信息工程學(xué)院例:(SP)=60H,標(biāo)號STRT值為2100H,標(biāo)號DIR值為8100H。STRT:LCALLDIR或STRT:LCALL2100H結(jié)果:(SP)=62H;(61H)=03H;(62H)=21H;(PC)=8100H10/7/202313福州大學(xué)物理與信息工程學(xué)院例:10/6/202313福州大學(xué)物理與信息工程學(xué)院短調(diào)用指令A(yù)CALLaddr11(PC)←(PC)+2,
(SP)←(SP)+1,((SP))←(PC7~0)
(SP)←(SP)+1,((SP))←(PC15~8)(PC)←addr11目的地址與當(dāng)前PC值必須位于2K范圍的同一頁面內(nèi)10/7/202314福州大學(xué)物理與信息工程學(xué)院短調(diào)用指令10/6/202314福州大學(xué)物理與信息工程學(xué)院編程時,可用標(biāo)號代替轉(zhuǎn)移目的地址,addr11,addr16交給編譯程序計算如:LCALLDIR;ACALLDIR10/7/202315福州大學(xué)物理與信息工程學(xué)院編程時,可用標(biāo)號代替轉(zhuǎn)移目的地址,addr11,addr16子程序返回指令RET從堆棧中自動取出斷點地址送給PC,使程序在主程序斷點處繼續(xù)執(zhí)行。(PC15~8)←((SP));(SP)←(SP)-1(PC7~0)←((SP));(SP)←(SP)-1子程序末尾必須是一條返回指令10/7/202316福州大學(xué)物理與信息工程學(xué)院子程序返回指令10/6/202316福州大學(xué)物理與信息工程學(xué)
例:(SP)=62H,(62H)=07H;(61H)=30HRET
則:(SP)=60H;(PC)=0730H10/7/202317福州大學(xué)物理與信息工程學(xué)院例:10/6/202317福州大學(xué)物理與信息工程學(xué)院中斷返回指令RETI用于中斷服務(wù)程序末尾除執(zhí)行RET指令的操作外,還清除中斷響應(yīng)時被置位的優(yōu)先級狀態(tài),開放較低級中斷和恢復(fù)中斷邏輯等功能。10/7/202318福州大學(xué)物理與信息工程學(xué)院中斷返回指令10/6/202318福州大學(xué)物理與信息工程學(xué)院3、條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令是指當(dāng)滿足某種條件時程序才轉(zhuǎn)移,而條件不滿足時程序繼續(xù)執(zhí)行下一條指令。條件主要指PSW中的標(biāo)志。注:①對PSW的按位操作也將影響相應(yīng)的標(biāo)志位。②任何一條改變累加器A的內(nèi)容的指令都將影響P標(biāo)志。③8051單片機(jī)隱含一個零標(biāo)志位(Z),當(dāng)(A)=0時,Z置“1”。10/7/202319福州大學(xué)物理與信息工程學(xué)院3、條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令是指當(dāng)滿足某種條件時程序才轉(zhuǎn)移,A判零轉(zhuǎn)移指令JZrel;(A)=0時轉(zhuǎn)移,(PC)←(PC)+2+rel否則程序順序執(zhí)行(PC)←(PC)+2JNZrel;(A)=1時轉(zhuǎn)移,(PC)←(PC)+2+rel否則程序順序執(zhí)行(PC)←(PC)+210/7/202320福州大學(xué)物理與信息工程學(xué)院A判零轉(zhuǎn)移指令10/6/202320福州大學(xué)物理與信息工程學(xué)例1、將外RAM的一個數(shù)據(jù)塊(首地址為DATA1)傳送到內(nèi)部數(shù)據(jù)RAM(首地址為DATA2),遇到傳送的數(shù)據(jù)為零時停止傳送,試編程。解:
MOVR0,#DATA2
MOVDPTR,#DATA1MOVXA,@DPTR
JZLOOP2MOV@R0,AINCR0INCDPTRSJMPLOOP1LOOP2:SJMPLOOP2LOOP1:10/7/202321福州大學(xué)物理與信息工程學(xué)院例1、將外RAM的一個數(shù)據(jù)塊(首地址為DATA1)傳送到內(nèi)部比較轉(zhuǎn)移指令:比較指令中兩個操作數(shù)的值是否相等,若值不等,則轉(zhuǎn)移;若相等則順序執(zhí)行。同時影響CY標(biāo)志位,若第一操作數(shù)<第二操作數(shù),則CY=1,否則CY=0是111條指令中僅有的4條三個操作數(shù)的指令10/7/202322福州大學(xué)物理與信息工程學(xué)院比較轉(zhuǎn)移指令:10/6/202322福州大學(xué)物理與信息工程學(xué)CJNEA,direct,rel;(A)≠(direct)則轉(zhuǎn)移, (PC)←(PC)+3+relCJNEA,#data,rel;(A)≠(direct)則轉(zhuǎn)移, (PC)←(PC)+3+relCJNERn,#data,rel;
(A)≠(direct)則轉(zhuǎn)移, (PC)←(PC)+3+relCJNE@Ri,#data,rel;(A)≠(direct)則轉(zhuǎn)移, (PC)←(PC)+3+rel10/7/202323福州大學(xué)物理與信息工程學(xué)院CJNEA,direct,rel;(A)≠(d若左操作數(shù)=右操作數(shù),則程序順序執(zhí)行(PC)←(PC)+3,同時(CY)=0若左操作數(shù)>右操作數(shù),則轉(zhuǎn)移(PC)←(PC)+3+rel,同時(CY)=0若左操作數(shù)<右操作數(shù),則轉(zhuǎn)移(PC)←(PC)+3+rel,同時(CY)=1也用于數(shù)值比較,以CY狀態(tài)判斷數(shù)值大小。CJNE操作數(shù)1,操作數(shù)2,轉(zhuǎn)移地址標(biāo)號10/7/202324福州大學(xué)物理與信息工程學(xué)院若左操作數(shù)=右操作數(shù),則程序順序執(zhí)行(PC)←(PC)+3,例如:
CJNEA,30H,NOTEQ;3分支轉(zhuǎn)移MOVA,R0;(A)=(30H)
AJMPWORK
NOTEQ:JCLITTER;(A)<(30H),轉(zhuǎn)MOVA,R1ACALLSUBLITTER:XXXX┋┋WORK:10/7/202325福州大學(xué)物理與信息工程學(xué)院例如:CJNEA,30H,NOTEQ;3分支減1非零轉(zhuǎn)移指令DJNZRn,rel;(Rn)←(Rn)-1,若(Rn)≠0則轉(zhuǎn)移,(PC)←(PC)+2+rel;若(Rn)=0則順序執(zhí)行(PC)←(PC)+2DJNZdirect,rel;(direct)←(direct)-1,若(direct)≠0則轉(zhuǎn)移,(PC)←(PC)+2+rel;若(direct)=0則順序執(zhí)行(PC)←(PC)+210/7/202326福州大學(xué)物理與信息工程學(xué)院減1非零轉(zhuǎn)移指令10/6/202326福州大學(xué)物理與信息工程主要用于控制程序循環(huán),先把Rn或direct賦值循環(huán)次數(shù),利用減1條件轉(zhuǎn)移指令,以減1后是否為0作為轉(zhuǎn)移條件,即可實現(xiàn)按次數(shù)控制循環(huán)。10/7/202327福州大學(xué)物理與信息工程學(xué)院主要用于控制程序循環(huán),先把Rn或direct賦值循環(huán)次數(shù),利例:延時50ms程序
DELY:MOVR7,#200MOVR6,#125DEL2:DJNZR6,DEL2;125*2=250usDJNZR7,DEL1;0.25ms*200=50ms
RET
使用12MHz晶振時,一個機(jī)器周期為1us,執(zhí)行DJNZ指令為2us,加其他指令的時間(250+1+2)*200+1=50.301ms
使用例:
ACALLDELY或LCALLDELY
DEL1:10/7/202328福州大學(xué)物理與信息工程學(xué)院例:延時50ms程序DEL1:10/6/202328福州大學(xué)4、位控制轉(zhuǎn)移指令JCrel;(Cy)=1則轉(zhuǎn)移,(PC)←(PC)+2+rel否則,程序繼續(xù)執(zhí)行,(PC)←(PC)+2JNCrel;(Cy)=0則轉(zhuǎn)移,(PC)←(PC)+2+rel否則,程序繼續(xù)執(zhí)行,(PC)←(PC)+2布爾累加器(進(jìn)位位)判位轉(zhuǎn)移。10/7/202329福州大學(xué)物理與信息工程學(xué)院4、位控制轉(zhuǎn)移指令JCrel;(C例:比較內(nèi)部RAM的30H和40H單元中的二個無符號數(shù)的大小,將大數(shù)存入20H單元,小數(shù)存入21H單元,若二數(shù)相等,則使內(nèi)RAM的第127位置1。解:
MOVA,30HCJNEA,40H,LOOP1SETB7FHSJMP$LOOP1:JCLOOP2MOV20H,AMOV21H,40HSJMP$LOOP2:MOV20H,40HMOV21H,ASJMP$10/7/202330福州大學(xué)物理與信息工程學(xué)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球元件參數(shù)測試儀行業(yè)調(diào)研及趨勢分析報告
- 2024年科普知識競賽試題庫及答案(共70題)
- 2024年青少年禁毒知識競賽小學(xué)組題庫及答案(共60題)
- 2025年度特種鋼材進(jìn)口與國內(nèi)銷售合作協(xié)議
- 2025年度應(yīng)急響應(yīng)個人勞務(wù)派遣服務(wù)合同示范文本2篇
- 二零二五年度車庫租賃及停車場運(yùn)營管理合同4篇
- 數(shù)字化背景下學(xué)校師德師風(fēng)教育的創(chuàng)新發(fā)展
- 數(shù)學(xué)教育與兒童發(fā)展游戲化教學(xué)的意義
- 二零二五年度鋁扣板藝術(shù)裝飾施工合同3篇
- 二零二五年度采砂場環(huán)境保護(hù)與修復(fù)合同3篇
- JB-T 8532-2023 脈沖噴吹類袋式除塵器
- 深圳小學(xué)英語單詞表(中英文)
- 護(hù)理質(zhì)量反饋內(nèi)容
- 山東省濟(jì)寧市2023年中考數(shù)學(xué)試題(附真題答案)
- 抖音搜索用戶分析報告
- 板帶生產(chǎn)工藝熱連軋帶鋼生產(chǎn)
- 鉆孔灌注樁技術(shù)規(guī)范
- 2023-2024學(xué)年北師大版必修二unit 5 humans and nature lesson 3 Race to the pole 教學(xué)設(shè)計
- 供貨進(jìn)度計劃
- 國際尿失禁咨詢委員會尿失禁問卷表
- 彌漫大B細(xì)胞淋巴瘤護(hù)理查房
評論
0/150
提交評論