計(jì)算機(jī)基礎(chǔ)課件第3章_7+控制轉(zhuǎn)移_第1頁(yè)
計(jì)算機(jī)基礎(chǔ)課件第3章_7+控制轉(zhuǎn)移_第2頁(yè)
計(jì)算機(jī)基礎(chǔ)課件第3章_7+控制轉(zhuǎn)移_第3頁(yè)
計(jì)算機(jī)基礎(chǔ)課件第3章_7+控制轉(zhuǎn)移_第4頁(yè)
計(jì)算機(jī)基礎(chǔ)課件第3章_7+控制轉(zhuǎn)移_第5頁(yè)
已閱讀5頁(yè),還剩23頁(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)介

1、 程序控制指令用來(lái)控制程序的執(zhí)行順序,用于實(shí)現(xiàn)分支、循環(huán)、過(guò)程調(diào)用程序控制指令用來(lái)控制程序的執(zhí)行順序,用于實(shí)現(xiàn)分支、循環(huán)、過(guò)程調(diào)用/返回、返回、中斷調(diào)用中斷調(diào)用/返回等程序結(jié)構(gòu)返回等程序結(jié)構(gòu) CS:IP總是指向下一條即將執(zhí)行的指令的地址,通過(guò)改變總是指向下一條即將執(zhí)行的指令的地址,通過(guò)改變IP和和CS的值,可以改變的值,可以改變程序的執(zhí)行順序,但程序中不能使用程序的執(zhí)行順序,但程序中不能使用MOV指令直接改變指令直接改變CS和和IP的值,只能通過(guò)程的值,只能通過(guò)程序控制指令實(shí)現(xiàn)序控制指令實(shí)現(xiàn)-32768+32767,轉(zhuǎn)移類(lèi)型為轉(zhuǎn)移類(lèi)型為NEAR PTR-128+127,轉(zhuǎn)移類(lèi)型為轉(zhuǎn)移類(lèi)型為SH

2、ORT 實(shí)際編程時(shí),匯編程序會(huì)根據(jù)目標(biāo)地址的屬性,實(shí)際編程時(shí),匯編程序會(huì)根據(jù)目標(biāo)地址的屬性,自動(dòng)處理自動(dòng)處理成短轉(zhuǎn)移、近轉(zhuǎn)移或遠(yuǎn)轉(zhuǎn)移。成短轉(zhuǎn)移、近轉(zhuǎn)移或遠(yuǎn)轉(zhuǎn)移。 程序員可用操作符程序員可用操作符short、near ptr 或或far ptr 強(qiáng)制成為需強(qiáng)制成為需要的轉(zhuǎn)移類(lèi)型。要的轉(zhuǎn)移類(lèi)型。 轉(zhuǎn)移類(lèi)指令的目標(biāo)地址通常采用標(biāo)號(hào),由匯編程序自動(dòng)計(jì)算目標(biāo)地址轉(zhuǎn)移類(lèi)指令的目標(biāo)地址通常采用標(biāo)號(hào),由匯編程序自動(dòng)計(jì)算目標(biāo)地址1、無(wú)條件轉(zhuǎn)移指令、無(wú)條件轉(zhuǎn)移指令 JMP(JuMP) 格式格式:JMP d 功能功能:程序無(wú)條件轉(zhuǎn)移到目標(biāo)地址程序無(wú)條件轉(zhuǎn)移到目標(biāo)地址d去執(zhí)行去執(zhí)行 說(shuō)明說(shuō)明:目標(biāo)地址:目標(biāo)地址d常常

3、用標(biāo)號(hào)表示,標(biāo)號(hào)是目標(biāo)地址的符號(hào)表示。有常常用標(biāo)號(hào)表示,標(biāo)號(hào)是目標(biāo)地址的符號(hào)表示。有6種目標(biāo)地址種目標(biāo)地址尋址方式。尋址方式。2、子程序(過(guò)程)調(diào)用指令、子程序(過(guò)程)調(diào)用指令 CALL 格式格式:CALL d 功能功能:程序無(wú)條件轉(zhuǎn)移到子程序(過(guò)程)地址程序無(wú)條件轉(zhuǎn)移到子程序(過(guò)程)地址d去執(zhí)行并保護(hù)斷點(diǎn)地址去執(zhí)行并保護(hù)斷點(diǎn)地址 說(shuō)明說(shuō)明:CALL指令與指令與JMP指令不同點(diǎn)在于指令不同點(diǎn)在于CALL指令包含了保護(hù)斷點(diǎn)地址的操作,指令包含了保護(hù)斷點(diǎn)地址的操作,即將斷點(diǎn)處的即將斷點(diǎn)處的IP(段內(nèi)調(diào)用)值或(段內(nèi)調(diào)用)值或CS、IP(段間調(diào)用)值壓入堆棧(段間調(diào)用)值壓入堆棧(PUSH IP或或

4、PUSH CS;PUSH IP)。)。CALL指令應(yīng)同指令應(yīng)同子程序(過(guò)程)子程序(過(guò)程)返回指令返回指令RET搭配使用。搭配使用。XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX3、子程序(過(guò)程)返回指令、子程序(過(guò)程)返回指令 RET(RETurn) 格式格式:RETRET n 功能功能:無(wú)條件從子程序返回?zé)o條件從子程序返回 說(shuō)明說(shuō)明:返回指令返回指令RET執(zhí)行與執(zhí)行與CALL指令相反的操作,指令相反的操作,RET指令安排在子程序中,實(shí)指令安排在子程序中,實(shí)現(xiàn)從子程序返回到主程序斷點(diǎn)處繼續(xù)執(zhí)行現(xiàn)從子程序返回到主程序斷點(diǎn)

5、處繼續(xù)執(zhí)行XXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXX4、條件轉(zhuǎn)移指令、條件轉(zhuǎn)移指令 格式格式:J條件條件 標(biāo)號(hào)標(biāo)號(hào) 功能功能:若滿足條件,則程序轉(zhuǎn)移到標(biāo)號(hào)地址去執(zhí)行,否則繼續(xù)執(zhí)行下一條指令若滿足條件,則程序轉(zhuǎn)移到標(biāo)號(hào)地址去執(zhí)行,否則繼續(xù)執(zhí)行下一條指令 說(shuō)明說(shuō)明:條件轉(zhuǎn)移指令是以標(biāo)志位的狀態(tài),或者是以標(biāo)志位的邏輯運(yùn)算結(jié)果作為轉(zhuǎn):條件轉(zhuǎn)移指令是以標(biāo)志位的狀態(tài),或者是以標(biāo)志位的邏輯運(yùn)算結(jié)果作為轉(zhuǎn)移依據(jù)的。如果滿足轉(zhuǎn)移條件,則程序轉(zhuǎn)移到指定的目標(biāo)地址,否則,繼續(xù)執(zhí)行下移依據(jù)的。如果滿足轉(zhuǎn)移條件,則程序轉(zhuǎn)移到指定的目標(biāo)地址,否則,繼續(xù)執(zhí)行下一條指令一條指令條件是由

6、標(biāo)志寄存器中的標(biāo)志的狀態(tài)決定的轉(zhuǎn)移。條件是由標(biāo)志寄存器中的標(biāo)志的狀態(tài)決定的轉(zhuǎn)移。條件是由有符號(hào)數(shù)和無(wú)符號(hào)數(shù)的大小決定的轉(zhuǎn)移。條件是由有符號(hào)數(shù)和無(wú)符號(hào)數(shù)的大小決定的轉(zhuǎn)移。FRJC 標(biāo)號(hào)標(biāo)號(hào) CF=1有進(jìn)位,則轉(zhuǎn)移到標(biāo)號(hào)所在地址有進(jìn)位,則轉(zhuǎn)移到標(biāo)號(hào)所在地址JNC 標(biāo)號(hào)標(biāo)號(hào) CF=0無(wú)進(jìn)位,則轉(zhuǎn)移到標(biāo)號(hào)所在地址無(wú)進(jìn)位,則轉(zhuǎn)移到標(biāo)號(hào)所在地址JZ/JE 標(biāo)號(hào)標(biāo)號(hào) ZF=1結(jié)果為零,則轉(zhuǎn)移到標(biāo)號(hào)所在地址結(jié)果為零,則轉(zhuǎn)移到標(biāo)號(hào)所在地址JNZ/JNE 標(biāo)號(hào)標(biāo)號(hào) ZF=0結(jié)果為非零,則轉(zhuǎn)移到標(biāo)號(hào)所在地址結(jié)果為非零,則轉(zhuǎn)移到標(biāo)號(hào)所在地址JS 標(biāo)號(hào)標(biāo)號(hào) SF=1結(jié)果為負(fù),則轉(zhuǎn)移到標(biāo)號(hào)所在地址結(jié)果為負(fù),則轉(zhuǎn)移到標(biāo)號(hào)所

7、在地址JNS 標(biāo)號(hào)標(biāo)號(hào) SF=0結(jié)果非負(fù),則轉(zhuǎn)移到標(biāo)號(hào)所在地址結(jié)果非負(fù),則轉(zhuǎn)移到標(biāo)號(hào)所在地址 JP 標(biāo)號(hào)標(biāo)號(hào) PF=1結(jié)果結(jié)果1的個(gè)數(shù)為偶數(shù)個(gè),則轉(zhuǎn)移的個(gè)數(shù)為偶數(shù)個(gè),則轉(zhuǎn)移JNP 標(biāo)號(hào)標(biāo)號(hào) PF=0結(jié)果結(jié)果1的個(gè)數(shù)為奇數(shù)個(gè),則轉(zhuǎn)移的個(gè)數(shù)為奇數(shù)個(gè),則轉(zhuǎn)移JO 標(biāo)號(hào)標(biāo)號(hào) OF=1結(jié)果溢出,則轉(zhuǎn)移到標(biāo)號(hào)所在地址結(jié)果溢出,則轉(zhuǎn)移到標(biāo)號(hào)所在地址 JNO 標(biāo)號(hào)標(biāo)號(hào) OF=0結(jié)果未溢出,則轉(zhuǎn)移到標(biāo)號(hào)所在地址結(jié)果未溢出,則轉(zhuǎn)移到標(biāo)號(hào)所在地址條件是由標(biāo)志寄存器中的標(biāo)志的狀態(tài)決定的轉(zhuǎn)移。條件是由標(biāo)志寄存器中的標(biāo)志的狀態(tài)決定的轉(zhuǎn)移。條件是由有符號(hào)數(shù)和無(wú)符號(hào)數(shù)的大小決定的轉(zhuǎn)移。條件是由有符號(hào)數(shù)和無(wú)符號(hào)數(shù)的大小決定的轉(zhuǎn)

8、移。u無(wú)符號(hào)數(shù)轉(zhuǎn)移指令:無(wú)符號(hào)數(shù)轉(zhuǎn)移指令:比較兩個(gè)無(wú)符號(hào)數(shù),并根據(jù)比較結(jié)果轉(zhuǎn)移比較兩個(gè)無(wú)符號(hào)數(shù),并根據(jù)比較結(jié)果轉(zhuǎn)移JA標(biāo)號(hào)標(biāo)號(hào);兩數(shù)比較,高于則轉(zhuǎn)移(;兩數(shù)比較,高于則轉(zhuǎn)移(JNBE)JNA標(biāo)號(hào)標(biāo)號(hào);兩數(shù)比較,不高于則轉(zhuǎn)移(;兩數(shù)比較,不高于則轉(zhuǎn)移(JBE)JB標(biāo)號(hào)標(biāo)號(hào);兩數(shù)比;兩數(shù)比較,較,低于則轉(zhuǎn)移(低于則轉(zhuǎn)移(JNAE)JNB標(biāo)號(hào)標(biāo)號(hào);兩數(shù)比較,不低于則轉(zhuǎn)移(;兩數(shù)比較,不低于則轉(zhuǎn)移(JAE)u有符號(hào)數(shù)轉(zhuǎn)移指令:有符號(hào)數(shù)轉(zhuǎn)移指令:比較兩個(gè)有符號(hào)數(shù),并根據(jù)比較結(jié)果轉(zhuǎn)移比較兩個(gè)有符號(hào)數(shù),并根據(jù)比較結(jié)果轉(zhuǎn)移JG標(biāo)號(hào)標(biāo)號(hào);兩數(shù)比較,大于則轉(zhuǎn)移(;兩數(shù)比較,大于則轉(zhuǎn)移(JNLE)JNG標(biāo)號(hào)標(biāo)號(hào);兩

9、數(shù)比較,不大于則轉(zhuǎn)移(;兩數(shù)比較,不大于則轉(zhuǎn)移(JLE)JL標(biāo)號(hào)標(biāo)號(hào);兩數(shù)比較,小于則轉(zhuǎn)移(;兩數(shù)比較,小于則轉(zhuǎn)移(JNGE)JNL標(biāo)號(hào)標(biāo)號(hào);兩數(shù)比較,不小于則轉(zhuǎn)移(;兩數(shù)比較,不小于則轉(zhuǎn)移(JGE)5、循環(huán)指令、循環(huán)指令 LOOP 格式格式:LOOP 標(biāo)號(hào)標(biāo)號(hào) 功能功能:將:將CXCX1,若,若CX0則轉(zhuǎn)到標(biāo)號(hào)地則轉(zhuǎn)到標(biāo)號(hào)地址去執(zhí)行,否則執(zhí)行下一條指令址去執(zhí)行,否則執(zhí)行下一條指令 說(shuō)明說(shuō)明:LOOP指令相當(dāng)于下面兩條指令的組合:指令相當(dāng)于下面兩條指令的組合:6、循環(huán)指令、循環(huán)指令 LOOPZ/LOOPE 格式格式:LOOPZ/LOOPE 標(biāo)號(hào)標(biāo)號(hào) 功能功能:若若ZF1且且CX1CX0則轉(zhuǎn)到標(biāo)

10、號(hào)地址則轉(zhuǎn)到標(biāo)號(hào)地址去執(zhí)行,否則執(zhí)行去執(zhí)行,否則執(zhí)行LOOPE后面的指令后面的指令 說(shuō)明說(shuō)明:LOOPE指令需要同時(shí)滿足兩個(gè)條件才進(jìn)行指令需要同時(shí)滿足兩個(gè)條件才進(jìn)行循環(huán)轉(zhuǎn)移。注意指令中檢測(cè)的循環(huán)轉(zhuǎn)移。注意指令中檢測(cè)的ZF是前面指令影響的是前面指令影響的結(jié)果,不是本指令結(jié)果,不是本指令CX1的結(jié)果的結(jié)果LOOPE指令常用于在一個(gè)數(shù)據(jù)區(qū)中尋找內(nèi)容指令常用于在一個(gè)數(shù)據(jù)區(qū)中尋找內(nèi)容與規(guī)定字符與規(guī)定字符不相同不相同的單元的單元7、循環(huán)指令、循環(huán)指令 LOOPNZ/LOOPNE 格式格式:LOOPNZ/LOOPNE 標(biāo)號(hào)標(biāo)號(hào) 功能功能:若若ZF0且且CX1CX0則轉(zhuǎn)到標(biāo)號(hào)地址則轉(zhuǎn)到標(biāo)號(hào)地址去執(zhí)行,否則執(zhí)行

11、去執(zhí)行,否則執(zhí)行LOOPE后面的指令后面的指令 說(shuō)明說(shuō)明:該指令與:該指令與LOOPZ指令僅指令僅ZF條件標(biāo)志不同。條件標(biāo)志不同。LOOPE指令常用于在一個(gè)數(shù)據(jù)區(qū)中尋找內(nèi)容指令常用于在一個(gè)數(shù)據(jù)區(qū)中尋找內(nèi)容與規(guī)定字符與規(guī)定字符相同相同的單元的單元8、CX是是0則轉(zhuǎn)移指令則轉(zhuǎn)移指令 JCXZ 格式格式:JCXZ 標(biāo)號(hào)標(biāo)號(hào) 功能功能:若若CX0則轉(zhuǎn)到標(biāo)號(hào)地址去執(zhí)行,否則執(zhí)行則轉(zhuǎn)到標(biāo)號(hào)地址去執(zhí)行,否則執(zhí)行JCXZ后面的指令后面的指令 說(shuō)明說(shuō)明:JCXZ指令與指令與LOOP指令相比,都是根據(jù)指令相比,都是根據(jù)CX的內(nèi)容決定是否轉(zhuǎn)移,但不同點(diǎn)是的內(nèi)容決定是否轉(zhuǎn)移,但不同點(diǎn)是JCXZ指令不包含指令不包含CX減減1操作,另外轉(zhuǎn)移條件是操作,另外轉(zhuǎn)移條件是CX0,而不是,而不是CX09、中斷調(diào)用指令、中斷調(diào)用指令 INT :INT n :調(diào)用類(lèi)型號(hào)為調(diào)用類(lèi)型號(hào)為n的中斷服務(wù)程序的中斷服務(wù)程序,n為為0255。 XXXXXXXXXXXX11、溢出中

溫馨提示

  • 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)論