單片機(jī)3.5控制轉(zhuǎn)移指令.ppt_第1頁
單片機(jī)3.5控制轉(zhuǎn)移指令.ppt_第2頁
單片機(jī)3.5控制轉(zhuǎn)移指令.ppt_第3頁
單片機(jī)3.5控制轉(zhuǎn)移指令.ppt_第4頁
單片機(jī)3.5控制轉(zhuǎn)移指令.ppt_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論