天津大學(xué)課件(第10課時(shí))_第1頁(yè)
天津大學(xué)課件(第10課時(shí))_第2頁(yè)
天津大學(xué)課件(第10課時(shí))_第3頁(yè)
天津大學(xué)課件(第10課時(shí))_第4頁(yè)
天津大學(xué)課件(第10課時(shí))_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、l1. 無(wú)條件轉(zhuǎn)移指令l2. 條件轉(zhuǎn)移指令l3. 子程序調(diào)用和返回指令l4. 空操作指令lLJMP addr16 ;PCaddr16lAJMP addr11 ;PC(PC)+2,PC100 addr11 lSJMP rel ;PC(PC)+2+rel lJMP A+DPTR ;PC(A)+DPTR l長(zhǎng)轉(zhuǎn)移指令(64KB范圍內(nèi)轉(zhuǎn)移)l三字節(jié)雙周期指令,其指令碼為:l 操作碼 高8位地址 低8位地址 02H addr15addr8 addr7addr0例:已知某單片機(jī)監(jiān)控程序起始地址為A080H,試問(wèn)用什么辦法可使單片機(jī)開(kāi)機(jī)后自動(dòng)執(zhí)行監(jiān)控程序。絕對(duì)轉(zhuǎn)移指令(2KB范圍內(nèi)轉(zhuǎn)移指令)雙字節(jié)雙周期指令

2、,11位地址addr11(a10a0)在指令中的分布是: a10 a9 a8 0 0 0 0 1 a7 a6 a5 a4 a3 a2 a1 a0 其中:00001B是操作碼。絕對(duì)轉(zhuǎn)移指令分為兩步:第一步是取指令操作,程序計(jì)數(shù)器PC中內(nèi)容被加1兩次,第二步是把PC加1兩次后的高5位地址PC15PC11和指令碼中低11位地址構(gòu)成目標(biāo)轉(zhuǎn)移地址: PC15PC11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 如果把單片機(jī)64KB尋址區(qū)劃分成32頁(yè)(每頁(yè)2KB),則PC15PC11(00000B11111B)稱為頁(yè)面地址(即:0頁(yè)31頁(yè)),a10a0稱為頁(yè)內(nèi)地址。注意:AJMP指

3、令的目標(biāo)轉(zhuǎn)移地址不是與AJMP指令地址在同一個(gè)2KB區(qū)域,而是應(yīng)與AJMP指令取出后的PC地址(即:PC+2)在同一個(gè)2KB區(qū)域。AJMPaddr11ROMPCPC+1PC+22KB例:已知如下絕對(duì)轉(zhuǎn)移指令:KWR:AJMP addr11其中:KWR為AJMP addr11指令的標(biāo)號(hào)地址(由該指令在程序存儲(chǔ)器中的位置確定),addr11為11位地址。試分析該指令執(zhí)行后情況以及指令碼的確定方法。假設(shè)KWR=3100H, addr11=10110100101B短轉(zhuǎn)移指令(-126+129范圍內(nèi)轉(zhuǎn)移指令)短轉(zhuǎn)移指令的功能是先使程序計(jì)數(shù)器PC加1兩次(即取出指令碼),然后把加1兩次后的地址和rel相加

4、作為目標(biāo)轉(zhuǎn)移地址。雙字節(jié)雙周期指令。指令碼為: 80H rel 操作碼 地址偏移量例:今有如下程序,請(qǐng)計(jì)算SJMP START指令碼中的rel,并分析目標(biāo)地址的轉(zhuǎn)移范圍。 ORG 1000H1000H 7401H START: MOV A,#01H ;字位碼初值送A1002H F8H MOV R0,A ;暫存于R01003H 90CF01H LOOP: MOV DPTR,#0CF01H ;送端口地址 1017H 80rel SJMP START ; 轉(zhuǎn)入START END變址轉(zhuǎn)移指令把DPTR中的基地址和累加器A中的地址偏移量相加,以形成目標(biāo)轉(zhuǎn)移地址送入程序計(jì)數(shù)器PC。累加器A判零轉(zhuǎn)移指令 J

5、Z rel; 若A=0,則PC(PC)+2+rel 若A0,則PC(PC)+2 JNZ rel; 若A0,則PC(PC)+2+rel 若A=0,則PC(PC)+2例:已知外部RAM中以DATA1(DATA1在0頁(yè)內(nèi))為起始地址的數(shù)據(jù)塊以零為結(jié)束標(biāo)志。試通過(guò)編程將之傳送到以DATA2為起始地址的內(nèi)部RAM區(qū)。比較條件轉(zhuǎn)移指令CJNE A,#data,rel ;若(A)=data,則PC(PC)+3 若(A)data,則PC(PC)+3+rel 形成Cy標(biāo)志CJNE A,direct,rel;若(A)=(direct),則PC(PC)+3 若(A)(direct),則PC(PC)+3+rel 形成

6、Cy標(biāo)志CJNE Rn,#data,rel;若(Rn)=data,則PC(PC)+3 若(Rn)data,則PC(PC)+3+rel 形成Cy標(biāo)志CJNE Ri,#data,rel;若(Ri)=data,則PC(PC)+3 若(Ri)data,則PC(PC)+3+rel 形成Cy標(biāo)志第一條形成Cy標(biāo)志位的方法是:累加器A中的內(nèi)容大于等于立即數(shù)data,則表示累加器A中的內(nèi)容夠減立即數(shù)data,故Cy=0;若累加器A中的內(nèi)容小于立即數(shù)data,則表示累加器A中的內(nèi)容不夠減立即數(shù)data,故Cy=1。其余三條指令功能與第一條指令相同,只是相比較的兩個(gè)源操作數(shù)不相同。減1條件轉(zhuǎn)移指令DJNZ Rn,

7、rel; 若(Rn)-10,則PC(PC)+2+rel 若(Rn)-1=0,則PC(PC)+2DJNZ direct,rel;若(direct)-10, 則PC(PC)+3+rel 若(direct)-1=0,則PC(PC)+3例:試編一程序令片內(nèi)RAM中以DAT為起始地址的數(shù)據(jù)塊中的連續(xù)10個(gè)無(wú)符號(hào)數(shù)相加,并將和送到SUM單元。設(shè)相加結(jié)果不超過(guò)8位二進(jìn)制數(shù)所能表示的范圍。把具有完整功能的程序段定義為子程序,供主程序在需要時(shí)調(diào)用;主程序在需要時(shí)通過(guò)調(diào)用指令自動(dòng)轉(zhuǎn)入子程序執(zhí)行,子程序執(zhí)行完后應(yīng)能通過(guò)返回指令自動(dòng)返回調(diào)用指令的下一條指令(該指令地址稱為斷點(diǎn)地址)執(zhí)行。調(diào)用和返回指令是成對(duì)使用的;主

8、程序和子程序是相對(duì)的,同一個(gè)子程序可以作為另一個(gè)程序的子程序,也可以有自己的子程序。二級(jí)子程序嵌套調(diào)用示意圖:主程序子程1子程2斷址1斷址2調(diào)指1調(diào)指2斷點(diǎn)地址1低8位斷點(diǎn)地址1高8位斷點(diǎn)地址2低8位斷點(diǎn)地址2高8位棧 底片內(nèi)RAMSP返指1返指2調(diào)用指令MCS-51有長(zhǎng)調(diào)用指令和短調(diào)用指令。短調(diào)用指令A(yù)CALL addr11 ;PC(PC)+2 ;SP(SP)+1,(SP)PC7PC0 ;SP(SP)+1,(SP)PC15PC8 ;PC100addr11 a10 a9 a8 1 0 0 0 1 a7 a6 a5 a4 a3 a2 a1 a0指令碼格式:例:設(shè)ACALL addr11指令在程序

9、存儲(chǔ)器中起始地址為1FFFH,堆棧指針SP為60H。試畫(huà)出8031執(zhí)行該指令時(shí)的堆棧變化示意圖,并指出被調(diào)用子程序在程序存儲(chǔ)器中的合法地址范圍。長(zhǎng)調(diào)用指令LCALL addr16 ;PC(PC)+3 ;SP(SP)+1,(SP)PC7PC0 ;SP(SP)+1,(SP)PC15PC8 ;PCaddr16 例:已知MA=0500H。試問(wèn)8031執(zhí)行如下指令 MOV SP, #70H MA: LCALL 8192H堆棧中數(shù)據(jù)如何變化?PC中的內(nèi)容是什么?返回指令RET ;PC15PC8(SP),SP(SP)-1 ;PC7PC0(SP),SP(SP)-1RETI ;PC15PC8(SP),SP(SP)-1 ;PC7PC0(SP),SP(SP)-1 RET 子程序返

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論