微機(jī)原理及應(yīng)用 課件 5.29程序控制指令之無(wú)條件轉(zhuǎn)移指令_第1頁(yè)
微機(jī)原理及應(yīng)用 課件 5.29程序控制指令之無(wú)條件轉(zhuǎn)移指令_第2頁(yè)
微機(jī)原理及應(yīng)用 課件 5.29程序控制指令之無(wú)條件轉(zhuǎn)移指令_第3頁(yè)
微機(jī)原理及應(yīng)用 課件 5.29程序控制指令之無(wú)條件轉(zhuǎn)移指令_第4頁(yè)
微機(jī)原理及應(yīng)用 課件 5.29程序控制指令之無(wú)條件轉(zhuǎn)移指令_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

微機(jī)原理及應(yīng)用第五章8086指令系統(tǒng)第二十九講程序控制指令之無(wú)條件轉(zhuǎn)移指令下面我們來(lái)學(xué)習(xí)處理器控制指令程序控制指令之無(wú)條件轉(zhuǎn)移指令首先來(lái)學(xué)習(xí)一下轉(zhuǎn)移指令,8086指令系統(tǒng)程序控制指令之無(wú)條件轉(zhuǎn)移指令轉(zhuǎn)移指令通過(guò)修改指令的偏移地址或段地址及偏移地址實(shí)現(xiàn)程序的轉(zhuǎn)移無(wú)條件轉(zhuǎn)移指令:無(wú)條件轉(zhuǎn)移到目標(biāo)地址條件轉(zhuǎn)移指令:當(dāng)具備一定條件時(shí)轉(zhuǎn)移到目標(biāo)地址通常指狀態(tài)標(biāo)志位轉(zhuǎn)移指令轉(zhuǎn)移指令是通過(guò)修改指令的偏移地址IP或者是同時(shí)修改段基址CS和偏移地址IP的值來(lái)實(shí)現(xiàn)程序的轉(zhuǎn)移8086指令系統(tǒng)程序控制指令之無(wú)條件轉(zhuǎn)移指令轉(zhuǎn)移指令通過(guò)修改指令的偏移地址或段地址及偏移地址實(shí)現(xiàn)程序的轉(zhuǎn)移無(wú)條件轉(zhuǎn)移指令:無(wú)條件轉(zhuǎn)移到目標(biāo)地址條件轉(zhuǎn)移指令:當(dāng)具備一定條件時(shí)轉(zhuǎn)移到目標(biāo)地址通常指狀態(tài)標(biāo)志位轉(zhuǎn)移指令CSIP修改指令偏移地址或段地址及偏移地址實(shí)現(xiàn)程序的轉(zhuǎn)移轉(zhuǎn)移指令轉(zhuǎn)移指令分無(wú)條件轉(zhuǎn)移指令和條件轉(zhuǎn)移指令8086指令系統(tǒng)程序控制指令之無(wú)條件轉(zhuǎn)移指令轉(zhuǎn)移指令通過(guò)修改指令的偏移地址或段地址及偏移地址實(shí)現(xiàn)程序的轉(zhuǎn)移無(wú)條件轉(zhuǎn)移指令:無(wú)條件轉(zhuǎn)移到目標(biāo)地址條件轉(zhuǎn)移指令:當(dāng)具備一定條件時(shí)轉(zhuǎn)移到目標(biāo)地址通常指狀態(tài)標(biāo)志位無(wú)條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令轉(zhuǎn)移指令無(wú)條件轉(zhuǎn)移指令不需要滿(mǎn)足任何條件就可以轉(zhuǎn)移到目標(biāo)地址,條件轉(zhuǎn)移指令是指當(dāng)具備一定條件的時(shí)候才轉(zhuǎn)移到目標(biāo)地址,這里的條件就是標(biāo)志位的狀態(tài)8086指令系統(tǒng)程序控制指令之無(wú)條件轉(zhuǎn)移指令轉(zhuǎn)移指令通過(guò)修改指令的偏移地址或段地址及偏移地址實(shí)現(xiàn)程序的轉(zhuǎn)移無(wú)條件轉(zhuǎn)移指令:無(wú)條件轉(zhuǎn)移到目標(biāo)地址條件轉(zhuǎn)移指令:當(dāng)具備一定條件時(shí)轉(zhuǎn)移到目標(biāo)地址通常指狀態(tài)標(biāo)志位無(wú)條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令無(wú)條件轉(zhuǎn)移到目標(biāo)地址具備一定條件轉(zhuǎn)移一定條件標(biāo)志位狀態(tài)首先我們來(lái)看一下無(wú)條件轉(zhuǎn)移指令

無(wú)條件轉(zhuǎn)移指令使程序無(wú)條件轉(zhuǎn)移到IP指向的代碼段的位置,并從這個(gè)地址開(kāi)始執(zhí)行程序無(wú)條件轉(zhuǎn)移指令沒(méi)有斷點(diǎn),沒(méi)有返回,沒(méi)有堆棧操作,也不影響任何標(biāo)志位總之,就是IP讓去哪里就去哪里,程序不會(huì)再回到轉(zhuǎn)移前的位置,所以也不需要保留任何數(shù)據(jù),也就沒(méi)有堆棧的操作無(wú)條件轉(zhuǎn)移指令本指令無(wú)條件轉(zhuǎn)移到指定的內(nèi)存地址,執(zhí)行從該地址開(kāi)始的程序段無(wú)斷點(diǎn),無(wú)返回,無(wú)堆棧操作,不影響標(biāo)志位8086指令系統(tǒng)程序控制指令之無(wú)條件轉(zhuǎn)移指令轉(zhuǎn)移指令無(wú)條件轉(zhuǎn)移到指定內(nèi)存地址,從該地址執(zhí)行程序無(wú)斷點(diǎn),無(wú)返回,無(wú)堆棧操作,不影響標(biāo)志位無(wú)條件轉(zhuǎn)移指令無(wú)條件轉(zhuǎn)移指令按是否修改CS的值,可以分為段內(nèi)轉(zhuǎn)移和段間轉(zhuǎn)移無(wú)條件轉(zhuǎn)移指令段內(nèi)直接轉(zhuǎn)移段內(nèi)間接轉(zhuǎn)移JMPOPRD段間直接轉(zhuǎn)移段間間接轉(zhuǎn)移與JMP在同一代碼段與JMP不在同一代碼段8086指令系統(tǒng)程序控制指令之無(wú)條件轉(zhuǎn)移指令不論是直接轉(zhuǎn)移還是間接轉(zhuǎn)移凡段內(nèi)轉(zhuǎn)移CS不變,只改變IP凡段間轉(zhuǎn)移CS和IP均改變轉(zhuǎn)移指令無(wú)條件轉(zhuǎn)移指令段內(nèi)轉(zhuǎn)移段間轉(zhuǎn)移如果只修改IP的值,不改變CS的值,就是段內(nèi)轉(zhuǎn)移無(wú)條件轉(zhuǎn)移指令段內(nèi)直接轉(zhuǎn)移段內(nèi)間接轉(zhuǎn)移JMPOPRD段間直接轉(zhuǎn)移段間間接轉(zhuǎn)移與JMP在同一代碼段與JMP不在同一代碼段8086指令系統(tǒng)程序控制指令之無(wú)條件轉(zhuǎn)移指令不論是直接轉(zhuǎn)移還是間接轉(zhuǎn)移凡段內(nèi)轉(zhuǎn)移CS不變,只改變IP凡段間轉(zhuǎn)移CS和IP均改變轉(zhuǎn)移指令無(wú)條件轉(zhuǎn)移指令段內(nèi)轉(zhuǎn)移段間轉(zhuǎn)移修改IP值,不改變CS值如果既修改IP的值也改變CS的值,就是段間轉(zhuǎn)移無(wú)條件轉(zhuǎn)移指令段內(nèi)直接轉(zhuǎn)移段內(nèi)間接轉(zhuǎn)移JMPOPRD段間直接轉(zhuǎn)移段間間接轉(zhuǎn)移與JMP在同一代碼段與JMP不在同一代碼段8086指令系統(tǒng)程序控制指令之無(wú)條件轉(zhuǎn)移指令不論是直接轉(zhuǎn)移還是間接轉(zhuǎn)移凡段內(nèi)轉(zhuǎn)移CS不變,只改變IP凡段間轉(zhuǎn)移CS和IP均改變轉(zhuǎn)移指令無(wú)條件轉(zhuǎn)移指令段內(nèi)轉(zhuǎn)移段間轉(zhuǎn)移修改IP值也改變CS值按照指令尋址的方式不同,又分為直接轉(zhuǎn)移和間接轉(zhuǎn)移無(wú)條件轉(zhuǎn)移指令段內(nèi)直接轉(zhuǎn)移段內(nèi)間接轉(zhuǎn)移JMPOPRD段間直接轉(zhuǎn)移段間間接轉(zhuǎn)移與JMP在同一代碼段與JMP不在同一代碼段8086指令系統(tǒng)程序控制指令之無(wú)條件轉(zhuǎn)移指令不論是直接轉(zhuǎn)移還是間接轉(zhuǎn)移凡段內(nèi)轉(zhuǎn)移CS不變,只改變IP凡段間轉(zhuǎn)移CS和IP均改變轉(zhuǎn)移指令直接轉(zhuǎn)移間接轉(zhuǎn)移無(wú)條件轉(zhuǎn)移指令段內(nèi)轉(zhuǎn)移段間轉(zhuǎn)移尋址方式:如果程序中直接指定了程序轉(zhuǎn)移的位置就是直接轉(zhuǎn)移如果程序中沒(méi)有直接告訴我們轉(zhuǎn)移的位置,而是通過(guò)寄存器或存儲(chǔ)器的值去修改IP的值,那就是間接轉(zhuǎn)移無(wú)條件轉(zhuǎn)移指令段內(nèi)直接轉(zhuǎn)移段內(nèi)間接轉(zhuǎn)移JMPOPRD段間直接轉(zhuǎn)移段間間接轉(zhuǎn)移與JMP在同一代碼段與JMP不在同一代碼段8086指令系統(tǒng)程序控制指令之無(wú)條件轉(zhuǎn)移指令不論是直接轉(zhuǎn)移還是間接轉(zhuǎn)移凡段內(nèi)轉(zhuǎn)移CS不變,只改變IP凡段間轉(zhuǎn)移CS和IP均改變轉(zhuǎn)移指令無(wú)條件轉(zhuǎn)移指令與JMP不在同一代碼段段內(nèi)轉(zhuǎn)移段間轉(zhuǎn)移與JMP在同一代碼段段內(nèi)直接轉(zhuǎn)移段內(nèi)間接轉(zhuǎn)移段間直接轉(zhuǎn)移段間間接轉(zhuǎn)移JMPOPRDJMPOPRD無(wú)條件轉(zhuǎn)移指令的操作碼是JMP,就是jump的簡(jiǎn)稱(chēng),是跳轉(zhuǎn)的意思無(wú)條件轉(zhuǎn)移指令段內(nèi)直接轉(zhuǎn)移段內(nèi)間接轉(zhuǎn)移JMPOPRD段間直接轉(zhuǎn)移段間間接轉(zhuǎn)移與JMP在同一代碼段與JMP不在同一代碼段8086指令系統(tǒng)程序控制指令之無(wú)條件轉(zhuǎn)移指令不論是直接轉(zhuǎn)移還是間接轉(zhuǎn)移凡段內(nèi)轉(zhuǎn)移CS不變,只改變IP凡段間轉(zhuǎn)移CS和IP均改變轉(zhuǎn)移指令無(wú)條件轉(zhuǎn)移指令與JMP不在同一代碼段段內(nèi)轉(zhuǎn)移段間轉(zhuǎn)移與JMP在同一代碼段段內(nèi)直接轉(zhuǎn)移段內(nèi)間接轉(zhuǎn)移段間直接轉(zhuǎn)移段間間接轉(zhuǎn)移JMPOPRDJMPOPRDJMP操作碼jump:跳轉(zhuǎn)后面是它的操作數(shù)無(wú)條件轉(zhuǎn)移指令段內(nèi)直接轉(zhuǎn)移段內(nèi)間接轉(zhuǎn)移JMPOPRD段間直接轉(zhuǎn)移段間間接轉(zhuǎn)移與JMP在同一代碼段與JMP不在同一代碼段8086指令系統(tǒng)程序控制指令之無(wú)條件轉(zhuǎn)移指令不論是直接轉(zhuǎn)移還是間接轉(zhuǎn)移凡段內(nèi)轉(zhuǎn)移CS不變,只改變IP凡段間轉(zhuǎn)移CS和IP均改變轉(zhuǎn)移指令無(wú)條件轉(zhuǎn)移指令與JMP不在同一代碼段段內(nèi)轉(zhuǎn)移段間轉(zhuǎn)移與JMP在同一代碼段段內(nèi)直接轉(zhuǎn)移段內(nèi)間接轉(zhuǎn)移段間直接轉(zhuǎn)移段間間接轉(zhuǎn)移JMPOPRDJMPOPRDOPRD操作數(shù)段內(nèi)直接轉(zhuǎn)移首先來(lái)看一下段內(nèi)直接轉(zhuǎn)移,這種情況最簡(jiǎn)單,保持CS不變,只改變IP,而且新IP的位置在指令中明確的給出轉(zhuǎn)向地址是IP的當(dāng)前值與位移量之和位移量:當(dāng)前指令與目標(biāo)指令之間的距離JMPSHORTDISP

;段內(nèi)直接短轉(zhuǎn)移,范圍是-128~+127:[IP]+DISP8→IPJMPNEARDISP

;段內(nèi)直接近轉(zhuǎn)移,范圍是-32768~32767:[IP]+DISP16→IP段內(nèi)直接轉(zhuǎn)移8086指令系統(tǒng)程序控制指令之無(wú)條件轉(zhuǎn)移指令CSIP改變不變段內(nèi)直接轉(zhuǎn)移我們舉兩個(gè)例子第一個(gè)是JMPshortdisp,這是段內(nèi)直接短轉(zhuǎn)移,short限定了轉(zhuǎn)移的距離是當(dāng)前指令-128~+127的范圍內(nèi)第二個(gè)是JMPneardisp這是段內(nèi)直接近轉(zhuǎn)移,near限定了轉(zhuǎn)移的距離是當(dāng)前指令-32768~+32767的范圍內(nèi)轉(zhuǎn)向地址是IP的當(dāng)前值與位移量之和位移量:當(dāng)前指令與目標(biāo)指令之間的距離JMPSHORTDISP

;段內(nèi)直接短轉(zhuǎn)移,范圍是-128~+127:[IP]+DISP8→IPJMPNEARDISP

;段內(nèi)直接近轉(zhuǎn)移,范圍是-32768~32767:[IP]+DISP16→IP段內(nèi)直接轉(zhuǎn)移8086指令系統(tǒng)程序控制指令之無(wú)條件轉(zhuǎn)移指令JMPshortdisp段內(nèi)直接短轉(zhuǎn)移范圍:-128~+127:[IP]+DISP8→IPJMPNEARDISP段內(nèi)直接近轉(zhuǎn)移范圍:-32768~32767:[IP]+DISP16→IP段內(nèi)直接轉(zhuǎn)移當(dāng)遇到這種指令時(shí),程序會(huì)計(jì)算當(dāng)前位置跟目標(biāo)位置之間的距離,并在IP的基礎(chǔ)上加上這個(gè)距離,使得IP指向跳轉(zhuǎn)的目標(biāo)位置轉(zhuǎn)向地址是IP的當(dāng)前值與位移量之和位移量:當(dāng)前指令與目標(biāo)指令之間的距離JMPSHORTDISP

;段內(nèi)直接短轉(zhuǎn)移,范圍是-128~+127:[IP]+DISP8→IPJMPNEARDISP

;段內(nèi)直接近轉(zhuǎn)移,范圍是-32768~32767:[IP]+DISP16→IP段內(nèi)直接轉(zhuǎn)移8086指令系統(tǒng)程序控制指令之無(wú)條件轉(zhuǎn)移指令JMPshortdisp段內(nèi)直接短轉(zhuǎn)移范圍:-128~+127:[IP]+DISP8→IPJMPNEARDISP段內(nèi)直接近轉(zhuǎn)移范圍:-32768~32767:[IP]+DISP16→IP轉(zhuǎn)向地址是IP的當(dāng)前值與位移量之和位移量:當(dāng)前指令與目標(biāo)指令之間的距離我們來(lái)看這個(gè)例子將bx值傳送到ax中,然后就跳轉(zhuǎn)到NEXt指示的位置上去這里NEXt跟當(dāng)前IP指示的指令比較近,所以用short就可以了MOVAX,BXJMPSHORTNEXT;NEXT段內(nèi)標(biāo)號(hào)ANDCL,0FHNEXT:ORCL,7FH從AND指令到NEXT之間的距離就是相對(duì)位移量,JMP轉(zhuǎn)移的地址=IP+位移量段內(nèi)直接轉(zhuǎn)移8086指令系統(tǒng)程序控制指令之無(wú)條件轉(zhuǎn)移指令段內(nèi)直接轉(zhuǎn)移MOVAX,BXJMPSHORTNEXT;NEXT段內(nèi)標(biāo)號(hào)ANDCL,0FHNEXT:ORCL,7FH程序會(huì)計(jì)算AND到NEXT的距離,然后給IP加上這個(gè)距離,從而讓IP指向NEXT的位置,從NEXT開(kāi)始繼續(xù)執(zhí)行MOVAX,BXJMPSHORTNEXT;NEXT段內(nèi)標(biāo)號(hào)ANDCL,0FHNEXT:ORCL,7FH從AND指令到NEXT之間的距離就是相對(duì)位移量,JMP轉(zhuǎn)移的地址=IP+位移量段內(nèi)直接轉(zhuǎn)移8086指令系統(tǒng)程序控制指令之無(wú)條件轉(zhuǎn)移指令段內(nèi)直接轉(zhuǎn)移MOVAX,BXJMPSHORTNEXT;NEXT段內(nèi)標(biāo)號(hào)ANDCL,0FHNEXT:ORCL,7FHANDNEXT從AND指令到NEXT之間距離是相對(duì)位移量JMP轉(zhuǎn)移的地址=IP+位移量再看段內(nèi)間接轉(zhuǎn)移,

段內(nèi)間接轉(zhuǎn)移就是IP要跳轉(zhuǎn)的位置沒(méi)有直接用標(biāo)號(hào)的形式寫(xiě)出,而是放到了其他的位置上,由于IP是16位的數(shù),所以,程序用一個(gè)寄存器或者是兩個(gè)連續(xù)的內(nèi)存單元給定IP的新值轉(zhuǎn)移地址為指定的16位寄存器或存儲(chǔ)器相鄰兩個(gè)單元可以采用各種尋址方式例:JMPBX ;執(zhí)行后[IP]=[BX]

JMPWORDPTR[BX+DI]JMPOPRD段內(nèi)間接轉(zhuǎn)移謝謝!8086指令系統(tǒng)程序控制指令之無(wú)條件轉(zhuǎn)移指令段內(nèi)間接轉(zhuǎn)移轉(zhuǎn)移地址為指定的16位寄存器或存儲(chǔ)器相鄰兩個(gè)單元可采用各種尋址方式例如JMPBX,就是將ip的新值放到BX中JMPwordptr[bx+di],就是將ip的新值放到bx+di指向的兩個(gè)連續(xù)的內(nèi)存單元中轉(zhuǎn)移地址為指定的16位寄存器或存儲(chǔ)器相鄰兩個(gè)單元可以采用各種尋址方式例:JMPBX ;執(zhí)行后[IP]=[BX]

JMPWORDPTR[BX+DI]JMPOPRD段內(nèi)間接轉(zhuǎn)移謝謝!8086指令系統(tǒng)程序控制指令之無(wú)條件轉(zhuǎn)移指令段內(nèi)間接轉(zhuǎn)移轉(zhuǎn)移地址為指定的16位寄存器或存儲(chǔ)器相鄰兩個(gè)單元可采用各種尋址方式JMPBX[IP]=[BX]執(zhí)行后:JMPWORDPTR[BX+DI]JMPWORDPTR[BX+DI]例如JMPBX,就是將ip的新值放到BX中JMPwordptr[bx+di],就是將ip的新值

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論