《X86指令系統(tǒng)》PPT課件

《X86指令系統(tǒng)》PPT課件

ID:39366554

大小:924.10 KB

頁數(shù):74頁

時間:2019-07-01

《X86指令系統(tǒng)》PPT課件_第1頁
《X86指令系統(tǒng)》PPT課件_第2頁
《X86指令系統(tǒng)》PPT課件_第3頁
《X86指令系統(tǒng)》PPT課件_第4頁
《X86指令系統(tǒng)》PPT課件_第5頁
資源描述:

《《X86指令系統(tǒng)》PPT課件》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、1五.控制傳送指令(Controltransferinstructions)(一)、控制傳送指令概述控制傳送指令包括四種:轉(zhuǎn)移指令,循環(huán)控制指令,過程調(diào)用指令,中斷指令。1、轉(zhuǎn)移指令轉(zhuǎn)移指令包括兩種:(1)、JMP(Jump)無條件轉(zhuǎn)移指令(2)、Jcc條件轉(zhuǎn)移指令2(1)、JMP(Jump)無條件轉(zhuǎn)移指令JMP指令的操作:無條件地將控制轉(zhuǎn)移到指令中規(guī)定的目的地目標(biāo)地址可以是:直接方式/間接方式給出。JMP指令不影響標(biāo)志位。轉(zhuǎn)移分成兩類:段內(nèi)或段間轉(zhuǎn)移。無條件轉(zhuǎn)移指令有五種格式:段內(nèi)直接短轉(zhuǎn)移段內(nèi)直接近轉(zhuǎn)移段內(nèi)間接轉(zhuǎn)移段間直接遠(yuǎn)轉(zhuǎn)移段間間接轉(zhuǎn)移3(

2、2)、Jcc條件轉(zhuǎn)移指令匯編程序設(shè)計中常利用條件轉(zhuǎn)移指令來實現(xiàn)分支。“cc”-表示條件。操作數(shù)必須是短標(biāo)號。轉(zhuǎn)移范圍為:-128~+127具體條件轉(zhuǎn)移指令分四種情況討論:根據(jù)單個條件標(biāo)志的設(shè)置情況轉(zhuǎn)移JZ(JE)/JNZ(JNE),JS/JNS,JO/JNO,JP(JPE)/JNP(JPO),JB(JNAE、JC)/JNB(JAE、JNC),根據(jù)兩個無符號數(shù)比較結(jié)果轉(zhuǎn)移JB(JNAE、JC)/JNB(JAE、JNC),JBE(JNA)/JNBE(JA)比較兩個帶符號數(shù),并根據(jù)比較結(jié)果轉(zhuǎn)移JL(JNGE)/JNL(JGE),JLE(JNG)/JNLE

3、(JG)測試CX的值為零轉(zhuǎn)移JCXZ42、過程調(diào)用指令如果有一些程序段在不同地方反復(fù)出現(xiàn),可以將這些程序段設(shè)計成為過程(子程序)供調(diào)用。過程結(jié)束,返回調(diào)用處。過程調(diào)用指令包括:過程調(diào)用指令和返回指令(1)、CALL(Callaprocedure)調(diào)用?CALL調(diào)用指令段內(nèi)直接調(diào)用段間直接調(diào)用段內(nèi)間接調(diào)用段間間接調(diào)用(2)、RET(Returefromprocedure)返回?RET返回指令段內(nèi)返回段間返回段內(nèi)帶立即數(shù)返回段間帶立即數(shù)返回53、循環(huán)控制指令循環(huán)控制指令用于使一些程序段反復(fù)執(zhí)行形成循環(huán)程序。循環(huán)控制指令有三種:(1)、LOOP(Loop

4、)循環(huán)指令(2)、LOOPE/LOOPZ(Loopifequal/Loopifzero)當(dāng)相等/為“0”循環(huán)(3)、LOOPNE/LOOPNZ(Loopifnotequal/Loopifnotzero)當(dāng)不相等/不為“0”循環(huán)64、中斷指令8086/8088CPU可以在程序中安排一條中斷指令引起中斷過程,這種中斷稱為軟中斷。8086/8088CPU共有三條中斷指令:(1)、INT(Interrupt)(2)、INTO(Interruptifoverflow)(3)、IRET(InterruptReturn)7指令類型助記符無條件轉(zhuǎn)移JMP條件轉(zhuǎn)移J

5、E/JZ,JNE/JNZ,JS,JNS,JP/JPE,JNP/JPO,JO,JNO,JC,JNC,JB/JNAE,JAE/JNB,JA/JNBE,JBE/JNA,JG/JNLE,JGE/JNL,JL/JNGE,JLE/JNG,JCXZ循環(huán)控制LOOP,LOOPE/LOOPZ,LOOPNE/LOOPNZ過程調(diào)用CALL,RET中斷指令I(lǐng)NT,INTO,IRET歸結(jié)控制轉(zhuǎn)移指令分類8(二)控制轉(zhuǎn)移指令(Controltransferinstructions)1、轉(zhuǎn)移指令轉(zhuǎn)移指令將程序控制從一處轉(zhuǎn)換到另一處的最直接方法。在CPU內(nèi)部,轉(zhuǎn)移是通過將目標(biāo)地址

6、傳送給CS:IP來實現(xiàn)的。注意:CS—段地址IP—偏移量9先介紹控制和非控制轉(zhuǎn)移指令的概念非控制轉(zhuǎn)移指令:指令本身對CS和IP均無操作,形成順序執(zhí)行結(jié)構(gòu)。順序執(zhí)行結(jié)構(gòu):順序存放,順序執(zhí)行控制轉(zhuǎn)移指令:以CS和IP為主要操作對象,改變CS和IP寄存器的值,就改變了程序執(zhí)行的流程。10在8086/8088中,指令的地址固定由CS和IP兩個寄存器決定。CS和IP兩寄存器的內(nèi)容決定了程序的流程,改變CS和IP寄存器的值,就改變了程序執(zhí)行的流程。8086/8088中CS和IP的變化規(guī)則:reset復(fù)位后,CS=FFFFH,IP=0故8088從內(nèi)存FFFF:0

7、000H處取第一條指令執(zhí)行,第一條指令在內(nèi)存的ROM區(qū)。非控制轉(zhuǎn)移指令CPU取來一條指令后,自動將IP的值加上該指令的字節(jié)數(shù),使IP順序指向下一條指令,CPU取來緊接著的指令執(zhí)行。(此時IP的變化由CPU內(nèi)部的硬件自動完成)11控制轉(zhuǎn)移指令以CS和IP為主要操作對象控制轉(zhuǎn)移指令改變CS和IP的值,使程序產(chǎn)生分支、調(diào)用結(jié)構(gòu)。分支結(jié)構(gòu)、調(diào)用結(jié)構(gòu):順序存放,非順序執(zhí)行例:比較AX、BX的大小,將大數(shù)存于(max)單元CMPAX,BXJGEgreatXCHGAX,BXgreat:MOV[max],AX12(1)、JMP(Jump)無條件轉(zhuǎn)移指令JMP(jm

8、p)跳轉(zhuǎn)指令。JMP指令必須指定轉(zhuǎn)移的目標(biāo)地址(或轉(zhuǎn)向地址)。轉(zhuǎn)移分成兩類:段內(nèi)或段間轉(zhuǎn)移。段內(nèi)轉(zhuǎn)移:只要改變IP寄存器的

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。