控制轉移指令_第1頁
控制轉移指令_第2頁
控制轉移指令_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

控制轉移指令控制轉移指令控制轉移類指令用于控制程序的走向,故其作用區(qū)間是程序存儲器空間。利用具有16位地址的長調用、長轉移指令可對64K程序存儲器的任一地址單元進行訪問,也可用具有11位地址的絕對調用和絕對轉移指令,訪問2K字節(jié)的空間。另外,還有在一頁范圍的短相對轉移以及許多條件轉移指令,這類指令一般不影響標志位,不面分別給予介紹。1.無條件轉移語句(4條)LJMP

addr16AJMPaddr11SJMP

relJMP

@(A)+DPTR

上述指令的功能是當程序執(zhí)行完該指令時,程序就無條件地轉移到指令所提供的地址上去。

第一條指令稱為長轉移指令,指令提供16位目標地址,將指令中第二字節(jié)和第三字節(jié)地址碼分別裝入PC的高8位中,所以無條件轉移的目標地址范圍是64K字節(jié)空間。

第二條指令稱為絕對轉移指令,指令提供11位目標地址,所以,無條件轉移的目標地址范圍是從下條指令開始的2K字節(jié)空間。

第三條指令稱為相對短轉移指令,指令控制程序無條件的轉向指定地址。該指令的rel是一個帶符號的相對偏移量,范圍為-128~+127。負數表示向后轉移,正數表示向前轉移。這條指令的優(yōu)點是指令給出的是相對轉移地址,不具體指出地址值,這樣當程序地址發(fā)生變化時,只要相對地址不發(fā)生變化,該指令就不需作任何改動。在用匯編語言寫程序時,rel是一個標號,由匯編程序在匯編過程中自動計算偏移地址。在手工匯編時,可用下式計算偏移地址:

向后轉移時:rel=FEH-(源、目的地址的絕對值)

向前轉移時:rel=(源、目的地址差的絕對值)-2

第四條指令稱為散轉指令(又稱為間接轉移指令),該指令把累加器A中的8位無符號數與作為基址寄存器DPTR中的16位數據相加,所得的值送入PC作為轉移的目的地址。該指令執(zhí)行后不影響累加器A和數據指針DPTR中的原內容,也不影響任何標志位。這條指令的特點是其轉移地址不是編程時確定的,而是在程序運行時動態(tài)決定的。因此,可以在DPTR中裝入多條轉移程序的首地址,而由累加器A中的內容來動態(tài)選擇該時刻應轉向那一條分支程序。2.條件轉移指令(8條)1.JZ

rel2.JNZ

rel3.CJNEA,data,rel4.CJNE

A,#data,rel5.CJNE

Rn,#data,rel6.CJNE

@Ri,data,rel7.DJNZ

Rn,rel8.DJNZ

data,rel

上述指令執(zhí)行滿足某種特定條件的轉移,其目標在以下一條指令的起始地址為中心的256個字節(jié)范圍內(-128~+127)。

第一條和第二條指令是判別累加器A中的內容是否為0來確定是順序執(zhí)行還是轉移。

第三條至第六條是比較轉移指令,該指令通過比較前面兩個操作數的大小,如果它們的值不相等則轉移,相等則繼續(xù)執(zhí)行。指令執(zhí)行后要影響進位位CY,若操作數1小于操作數2,則CY=1;若操作數1大于操作數2,則CY=0。3.調用指程序及返回指令(4條)1.LCALL

addr162.ACALL

addr113.RET4.RETI

在程序設計中,經常需要對某段程序反復執(zhí)行,為了減少程序的編寫以及浪費不必要的地址空間,于是引入了主程序和子程序的概念,通常把某一段需要反復調用的程序稱為子程序,子程序的最后一條指令為返回主程序指令(RET),而對具有調用子程序功能的指令稱為調用指令。

第一條指令稱為長調用指令,其與LJMP一樣提供16位地址,可調用64K字節(jié)范圍內的子程序。由于其為三字節(jié)指令,所以執(zhí)行時首先(PC)+3,以獲得下一條指令地址,并把此時的PC內容壓入堆棧,作為返回地址,然后把地址addr16裝入PC,轉去執(zhí)行子程序。

第二條指令稱為絕對調用指令,該指令提供11位目標地址,限制在2K字節(jié)范圍內調用,由于是雙字節(jié)指令,所以執(zhí)行時(PC)+2以獲得下一條指令的地址,然后把該地址壓入堆棧作為返回地址。其操作碼的形成與AJMP指令相同。

第三條指令稱為子程序返回指令,表示子程序結束需返回主程序,所以執(zhí)行該指令時,分別從堆棧中彈出調用子程序時壓入的返回地址。

第四條指令稱為中斷返回指令,該指令的執(zhí)行過程類似指令RET,但其還能恢復中斷邏輯,RET

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論