版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1,第五節(jié) 控制轉(zhuǎn)移指令 這類指令可使程序轉(zhuǎn)向非順序單元執(zhí)行,使程序發(fā)生分支或循環(huán)。 一、無條件轉(zhuǎn)移指令: 1.調(diào)用與返回指令: P71 調(diào)用子程序與從子程序返回操作解釋: 8000 MOV A , #05H 8250 BBD: - - - - - 8002 - - - - - 8252 - - - - - 8004 - - - - - - - - - - - 800A ACALL BBD PC 800C 將800C壓入堆棧保存 RET PC修改為BBD的地址 返回操作 從堆棧中彈出斷點(diǎn),2,(1).絕對(duì)調(diào)用指令 ACALL addr11 調(diào)用子程序指令。該指令可改變程序計(jì)數(shù)器PC的低11位地
2、址,所調(diào)子程序首地址必須在2K頁內(nèi)。 (2).長調(diào)用指令 LCALL addr16 調(diào)用子程序指令。所調(diào)子程序首地址可在64K地址的任何位置。 (3).從子程序返回指令 RET,3,2.無條件跳轉(zhuǎn)指令: P64 (1)絕對(duì)跳轉(zhuǎn)指令 AJMP addr11 可使程序在2k頁內(nèi)跳轉(zhuǎn),即可改變低11位地址。 (2)長跳轉(zhuǎn)指令 LJMP addr16 可使程序跳轉(zhuǎn)到64K程序存儲(chǔ)器的任何位置。 (3)相對(duì)短跳轉(zhuǎn)指令 SJMP rel 其中rel為偏移量,指令表中用(e)表示。rel的數(shù)字指出PC跳轉(zhuǎn)應(yīng)從現(xiàn)地址向上或向下跳轉(zhuǎn)多少字節(jié)。rel為8位有符號(hào)二進(jìn)制數(shù),它的范圍是-128 +127,用補(bǔ)碼表示。
3、rel為負(fù)值時(shí)表示從大地址向小地址跳轉(zhuǎn),為正值時(shí)表示從小地址向大地址跳轉(zhuǎn)。 例,4,8000 MAIN: MOV A , #01H 8002 ADD A , #02H 8006 SJMP MAIN (DIR) PC 8008 MOV A , R0 800F DIR: MOV A , R2 偏移量rel的計(jì)算公式為(e) = 目的地址 PC當(dāng)前值,注意用補(bǔ)碼表示。PC當(dāng)前值為跳轉(zhuǎn)指令下面一條指令的地址,即8008H。 上例中跳轉(zhuǎn)到MAIN時(shí): (e) = 8000H 8008H = F8H (-8) 跳轉(zhuǎn)到DIR時(shí): (e) = 800FH 8008H = 07H,5,使用以上調(diào)用與轉(zhuǎn)移指令注意
4、: 以上指令均為無條件,執(zhí)行該類指令時(shí)程序計(jì)數(shù)器PC一定轉(zhuǎn)向非順序單元執(zhí)行。 調(diào)用與返回指令常成對(duì)使用,返回指令RET應(yīng)出現(xiàn)在每一個(gè)子程序的末尾。 調(diào)用與返回指令都要有棧操作,使用該類指令前要建立堆棧,以便保護(hù)斷點(diǎn)。 轉(zhuǎn)移指令與調(diào)用子程序指令的異同: 相同之處是它們都是改變PC值,使程序轉(zhuǎn)入非順序單元執(zhí)行。 不同之處是:調(diào)用與返回指令在子程序執(zhí)行結(jié)束后一定返回 原斷點(diǎn)地址,因此一定有棧操作。 轉(zhuǎn)移指令轉(zhuǎn)走后不一定回到原斷點(diǎn),因此不必 堆棧保存斷點(diǎn)地址。,6,三種轉(zhuǎn)移指令: AJMP addr11 短跳轉(zhuǎn) 地址范圍2K字節(jié) 二字節(jié)指令 LJMP addr16 長跳轉(zhuǎn) 地址范圍64K字節(jié) 三字節(jié)指
5、令 SJMP rel 相對(duì)跳轉(zhuǎn) 地址范圍256字節(jié) 二字節(jié)指令 它們就跳轉(zhuǎn)的操作來說沒有任何區(qū)別,適用于不同的跳轉(zhuǎn)地址范圍。,7,二、有條件轉(zhuǎn)移指令: 該類指令是當(dāng)符合某種條件時(shí),程序轉(zhuǎn)移到另一地址執(zhí)行,不符合這種條件時(shí),程序按原順序繼續(xù)執(zhí)行。 1.判零相對(duì)轉(zhuǎn)移指令: 以累加器A的內(nèi)容為0或非0為條件判斷轉(zhuǎn)移。 P68 JZ rel ;A的內(nèi)容為0則相對(duì)轉(zhuǎn)移,否則順序執(zhí)行。 JNZ rel ;A的內(nèi)容非0則相對(duì)轉(zhuǎn)移,否則順序執(zhí)行。 rel偏移量的定義同前。 例 MOV A , #56H SUBB A , R0 JZ 8016H ;當(dāng)減法結(jié)果為0時(shí)跳到8016H地址執(zhí)行 否則繼續(xù)往下執(zhí)行。,8,
6、2.比較相對(duì)轉(zhuǎn)移指令: P68 CJNE (目的字節(jié)) , (源字節(jié)) , rel 操作:將目的字節(jié)內(nèi)容與源字節(jié)內(nèi)容相比較,若不等則相對(duì)轉(zhuǎn)移, 若相等則順序執(zhí)行。 若(目的字節(jié))(源字節(jié))則C = 1,否則C = 0 該指令執(zhí)行后操作數(shù)內(nèi)容不變。 例 CJNE A , #04H , MAIN ;(A) 04H則跳轉(zhuǎn)到MAIN標(biāo)號(hào) (A) = 04H順序執(zhí)行 如果(A )04H則C= 1 CJNE R0 , #05H , DIR ;(R0)05H則跳DIR標(biāo)號(hào) CJNE A , 30H , STOP ;(A)(30H)則跳STOP標(biāo)號(hào),9,3.控制轉(zhuǎn)移指令: P70 DJNZ 第一操作數(shù) , r
7、el 操作:第一操作數(shù)內(nèi)容減1,結(jié)果非0則相對(duì)轉(zhuǎn)移,結(jié)果為0則 順序執(zhí)行。 第一操作數(shù)可以是DATA或Rn 。 該指令不影響任何標(biāo)志位。 例 DJNZ R0 , LOOP ;(R0) 1結(jié)果非0轉(zhuǎn)LOOP標(biāo)號(hào) DJNZ 30H , SQ ;(30H) 1結(jié)果非0轉(zhuǎn)SQ標(biāo)號(hào),10,4.以位地址的內(nèi)容為判斷條件的轉(zhuǎn)移指令: (1) JC rel ;( C ) = 1跳轉(zhuǎn);( C ) = 0順序向下執(zhí)行 (2) JNC rel ;( C ) = 0跳轉(zhuǎn);( C ) = 1順序向下執(zhí)行 (3) JB bit , rel ;(bit) = 1跳轉(zhuǎn);(bit) = 0順序問下執(zhí)行 (4) JNB bit
8、, rel ;(bit) = 0跳轉(zhuǎn);(bit) = 1順序問下執(zhí)行 (5) JBC bit , rel ; (bit) = 1跳轉(zhuǎn),且將該位內(nèi)容清0; (bit) = 0順序向下執(zhí)行 三、其它指令 1.RETI 從中斷返回指令。后述。 2.NOP 空操作指令。執(zhí)行該指令CPU不作任何操作,只是 延時(shí)一個(gè)機(jī)器周期的時(shí)間。,11,四、控制轉(zhuǎn)移指令綜合舉例: 例1 判斷P1口輸入的數(shù)據(jù)若為負(fù)則轉(zhuǎn)DIR,否則轉(zhuǎn)MIN。 方法1:8000 E5 90 MIN : MOV A,P1 8002 33 RLC A 8003 40 e1 JC DIR 8005 80 e2 SJMP MIN 8007 800A
9、 DIR: 求偏移量:e = 目的地址 下條指令地址補(bǔ)碼 e1 = 800A H - 8005H補(bǔ)碼=05H e2 = 8000H 8007H補(bǔ)碼=-7補(bǔ)碼=F9H,12,方法2: MIN:MOV A,P1 ANL A,#80H ;切取符號(hào)位 JNZ DIR LJMP MIN 方法3: MIN: MOV A,P1 JB E7H ,DIR ;A可位尋址,其符號(hào)位地址 為E7H AJMP MIN,13,例2判斷50H單元內(nèi)容若為FBH則轉(zhuǎn)DIR,若為FEH則轉(zhuǎn)MIN。 方法1: MOV R0 ,#50H CJNE R0 ,#0FBH ,S1 AJMP DIR S1: CJNE R0 ,#0FE ,S2 MIN: MOV A,50H . S2: . . DIR: ,14,方法2: MOV A, 50H XRL A, #0FBH JZ DIR MOV A,50H XRL A,#0FEH J
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高職第一學(xué)年(財(cái)務(wù)管理)學(xué)科競(jìng)賽選拔測(cè)試卷
- 2025年大學(xué)護(hù)理(體溫測(cè)量技術(shù))試題及答案
- 2025年高職旅游服務(wù)與管理(旅游投訴處理)試題及答案
- 2025年高職安全工程技術(shù)(事故預(yù)防技術(shù))試題及答案
- 2025年大學(xué)大一(基礎(chǔ)醫(yī)學(xué))人體解剖學(xué)基礎(chǔ)試題及答案
- 2025年高職會(huì)計(jì)軟件應(yīng)用(賬務(wù)處理)試題及答案
- 2025年大學(xué)(航空航天工程)航空概論進(jìn)階綜合測(cè)試卷及評(píng)分標(biāo)準(zhǔn)
- 2025年中職口腔護(hù)理(口腔清潔護(hù)理)試題及答案
- 2025年高職母乳喂養(yǎng)指導(dǎo)(技巧傳授)試題及答案
- 2025年大學(xué)大四(藥學(xué))藥物分析綜合測(cè)試試題及答案
- 2025年中遠(yuǎn)海運(yùn)集團(tuán)招聘筆試備考題庫(帶答案詳解)
- REVIT建筑建模知到智慧樹期末考試答案題庫2025年武漢職業(yè)技術(shù)學(xué)院
- 黃河鯉魚規(guī)?;鷳B(tài)養(yǎng)殖項(xiàng)目可行性研究報(bào)告完整立項(xiàng)報(bào)告
- (高清版)DG∕TJ 08-2299-2019 型鋼混凝土組合橋梁設(shè)計(jì)標(biāo)準(zhǔn)
- 瞼板腺炎的健康宣教
- 慢性阻塞性肺疾病診治指南課件
- 勞動(dòng)與社會(huì)保障法-002-國開機(jī)考復(fù)習(xí)資料
- 工廠車間流水線承包合同協(xié)議書范文
- 客房服務(wù)員理論知識(shí)考試題及答案
- HG/T 6262-2024 再生磷酸鐵(正式版)
- 汽輪機(jī)調(diào)速系統(tǒng)的組成和工作原理(1)課件
評(píng)論
0/150
提交評(píng)論