版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
四控制轉(zhuǎn)移指令轉(zhuǎn)移類指令循環(huán)控制指令過程調(diào)用和返回指令中斷控制類指令1轉(zhuǎn)移指令1)無條件轉(zhuǎn)移指令無條件轉(zhuǎn)移到目標(biāo)地址,執(zhí)行新的指令。2)有條件轉(zhuǎn)移指令在具備一定條件的情況下轉(zhuǎn)移到目標(biāo)地址。轉(zhuǎn)移指令的實質(zhì):改變IP(或CS)的內(nèi)容。所有轉(zhuǎn)移指令不會影響標(biāo)志位。分為無條件轉(zhuǎn)移和條件轉(zhuǎn)移兩種。(1)無條件轉(zhuǎn)移指令JMP①段內(nèi)直接轉(zhuǎn)移(相對轉(zhuǎn)移)
轉(zhuǎn)移的目標(biāo)地址由指令直接給出。指令中直接給出的目標(biāo)地址實際上是一個相對于IP的位移量。
位移量轉(zhuǎn)移范圍匯編語言中格式
8位
-128~+127
JMPSHORT
LABLE 16位
-32768~+32767JMPNEARPTR
LABLE例: JMP 0120H ;直接轉(zhuǎn)向0120H JMP SHORTLPI;轉(zhuǎn)向LPI
JMP
NEARPTRBBB ;轉(zhuǎn)向BBB由于是段內(nèi)轉(zhuǎn)移,故轉(zhuǎn)移后CS內(nèi)容保持不變
轉(zhuǎn)移的目標(biāo)地址(偏移量)由寄存器或存儲單元的內(nèi)容給出。
例:JMPSI
若指令執(zhí)行前(SI)=1200H,則指令執(zhí)行后,(IP)=1200H,于是轉(zhuǎn)向代碼段的偏移地址1200H處執(zhí)行。②段內(nèi)間接轉(zhuǎn)移注意:目標(biāo)地址以段內(nèi)偏移的形式給出,而不是相對于IP的位移量,所以它是一個16位的操作數(shù)。例:JMP[BX+DI]設(shè)指令執(zhí)行前:(DS)=3000H,(BX)=1300H,(DI)=1200H,(32500H)=50H,(32501H)=23H;則指令執(zhí)行后:(IP)=2350H在匯編語言中,段內(nèi)間接尋址通常寫成:
JMP WORDPTR[BX+DI]
表示所取得的目標(biāo)地址是一個字(16位偏移地址)。②段內(nèi)間接轉(zhuǎn)移
在指令中直接給出要轉(zhuǎn)移到的目的段地址和偏移地址。
例:JMP 2000:1000H
執(zhí)行時,(IP)←1000H,(CS)←2000H③段間直接轉(zhuǎn)移注:直接地址為符號地址時,段間直接轉(zhuǎn)移指令中的符號地址前應(yīng)加操作符FARPTR。
例:JMP FARPTR
far_label
其中的far_label為遠(yuǎn)類型的標(biāo)號。④段間間接轉(zhuǎn)移
轉(zhuǎn)移的目的地址(段和偏移)在兩個相鄰的字存儲單元中。例如: JMPDWORDPTR[SI]
設(shè)指令執(zhí)行前:(DS)=4000H,(SI)=1212H,(41212H)=1000H,(41214H)=4A00H則指令執(zhí)行后:(IP)=1000H,(CS)=4A00H。(2)條件轉(zhuǎn)移指令Jcc格式為:
JccLabel ;Label是轉(zhuǎn)移的目標(biāo)地址Jcc指令包括下列3類:(1)測試單個標(biāo)志位。(2)用于帶符號數(shù)比較。(3)用于無符號數(shù)比較。條件轉(zhuǎn)移指令只能是段內(nèi)直接轉(zhuǎn)移,且指令的轉(zhuǎn)移范圍為指令所在位置的-128~+127字節(jié)。
JC ;CF=1,則轉(zhuǎn)移
JNC ;CF=0,則轉(zhuǎn)移
JE/JZ;結(jié)果為零(ZF=1),則轉(zhuǎn)移
JNZ/JNE;結(jié)果不為零(ZF=0),則轉(zhuǎn)移
JP/JPE;奇偶標(biāo)志PF=1(偶),則轉(zhuǎn)移
JNP/JPO
;奇偶標(biāo)志PF=0(奇),則轉(zhuǎn)移
JS;符號標(biāo)志SF=1,則轉(zhuǎn)移
JNS;符號標(biāo)志SF=0,則轉(zhuǎn)移
JO ;溢出標(biāo)志OF=1,則轉(zhuǎn)移
JNO ;溢出標(biāo)志OF=0,則轉(zhuǎn)移根據(jù)CX內(nèi)容來決定是否轉(zhuǎn)移的轉(zhuǎn)移指令
JCXZlabel;若(CX)=0,則轉(zhuǎn)移到label處開始執(zhí)行。i根據(jù)單個標(biāo)志位設(shè)置的條件轉(zhuǎn)移指令ii判斷無符號數(shù)的大小JA/JNBE
;高于/不低于且不等于,則轉(zhuǎn)移(A>B) 條件為:CF=0且ZF=0JAE/JNB
;高于或等于/不低于,則轉(zhuǎn)移(A≥B) 條件為:CF=0或ZF=1JB/JNAE
;低于/不高于且不等于,則轉(zhuǎn)移(A<B) 條件為:CF=1且ZF=0JBE/JNA
;低于或等于/不高于,則轉(zhuǎn)移(AB) 條件為:CF=1或ZF=1iii判斷有符號數(shù)的大小JG/JNLE
;大于/不小于且不等于,則轉(zhuǎn)移(A>B) 條件為:(SF⊕OF=0)且ZF=0JGE/JNL
;大于或等于/不小于,則轉(zhuǎn)移(A≥B) 條件為:(SF⊕OF=0)或ZF=1JL/JNGE
;小于/不大于且不等于,則轉(zhuǎn)移(A<B) 條件為:(SF⊕OF=1)且ZF=0JLE/JNG
;小于或等于/不大于,則轉(zhuǎn)移(A≤B) 條件為:(SF⊕OF=1)或ZF=1例:將AX與BX中兩無符號數(shù)的較大數(shù)存WMAX單元。CMPAX,BX;比較AX和BX
JAEnext ;若AX≥BX,轉(zhuǎn)移
XCHGAX,BX;AX<BX,交換next: MOVWMAX,AX;存較大數(shù)如果AX和BX存放的是有符號數(shù),則條件轉(zhuǎn)移指令應(yīng)采用JGE指令例:地址為DATA的存儲單元中存放著一個帶符號的16位數(shù),若該數(shù)為正,則CX=1;若該數(shù)為負(fù),則CX=FFFFH;若該數(shù)為0,則CX=0。MOVAX,DATAANDAX,AXJEZEROJNSPLUSMOVCX,0FFFFHJMPDONEZERO:MOVCX,0JMPDONEPLUS:MOVCX,1DONE:HLT2循環(huán)控制指令用在循環(huán)程序中以確定是否要繼續(xù)循環(huán)。循環(huán)次數(shù)通常置于CX中。轉(zhuǎn)移的目標(biāo)應(yīng)在距離本指令-128~+127的范圍之內(nèi)。循環(huán)控制指令不影響標(biāo)志位。格式:LOOPlabel操作:(CX)-1→CX;若(CX)≠0,則轉(zhuǎn)至label處執(zhí)行;否則退出循環(huán),執(zhí)行LOOP后面的指令。
LOOP指令與下面的指令段等價:
DECCX JNZlabel(1)循環(huán)轉(zhuǎn)移指令LOOP(2)LOOPZ(LOOPE)格式:LOOPZlabel操作:(CX)-1→CX;若(CX)≠0且ZF=1,則轉(zhuǎn)至label處繼續(xù)循環(huán);否則退出循環(huán),執(zhí)行LOOP后面的指令。(3)LOOPNZ(LOOPNE)格式:LOOPNZlabel操作:(CX)-1→CX;若(CX)≠0且ZF=0,則轉(zhuǎn)至label處繼續(xù)循環(huán);否則退出循環(huán),執(zhí)行LOOP后面的指令。3過程調(diào)用和返回指令過程(子程序):
一段具有特定功能的,供其它程序調(diào)用的公用程序。特點調(diào)用子程序時,IP(CS)的內(nèi)容被壓入堆棧棧頂。從子程序返回時,棧頂?shù)膬?nèi)容又被彈出到IP(CS)。子程序執(zhí)行結(jié)束后一般均要返回調(diào)用程序。一次定義,可多次調(diào)用;可帶參數(shù)調(diào)用,以完成不同的功能。(1)調(diào)用指令CALL一般格式:CALL
sub;sub為子程序的入口。根據(jù)子程序入口的尋址方式,子程序調(diào)用有四類。①段內(nèi)直接調(diào)用
子程序的偏移地址直接由CALL指令給出。格式:CALLNEAR_PROC
CALL執(zhí)行時,它首先將IP內(nèi)容壓棧,然后把指令中給出的位移量加到IP上。
②段內(nèi)間接調(diào)用子程序的偏移地址在寄存器或存儲器中。格式:CALL
mem16/reg16 CALL執(zhí)行時,它首先將IP內(nèi)容壓棧,然后把指定的寄存器/存儲器的內(nèi)容送入IP。例:
CALLAX
;調(diào)用地址由AX給出
CALLWORDPTR[SI]
;調(diào)用地址由存儲器給出.例:對于CALLWORDPTR[SI]這條指令若:(DS)
=
8000H,(SI)
=
1200H則指令操作圖示如下。CALLIPHIPL代碼段數(shù)據(jù)段81200H81201H③段間直接調(diào)用
子程序的段地址和偏移地址直接由CALL指令給出。格式:CALLFAR_PROC;FAR_PROC為遠(yuǎn)過程的地址指令的操作:((SP)-1,(SP)-2)←(CS);原CS壓棧 SP←(SP)-2
CS←新段地址
((SP)-1,(SP)-2)←(IP);原IP壓棧 SP←(SP)-2
IP←新偏移地址例:CALL 2000H:1000H④段間間接調(diào)用
子程序的段地址和偏移地址為存儲器的連續(xù)4個單元中的內(nèi)容。格式:CALL
mem32指令的操作為:((SP)-1,(SP)-2)←(CS);原CS壓棧 SP←(SP)-2 CS←(mem32+2)
((SP)-1,(SP)-2)←(IP);原IP壓棧 SP←(SP)-2 IP←(mem32)例:CALLDWORDPTR[DI]
調(diào)用地址在[DI],[DI]+1,[DI]+2,[DI]+3四個存儲單元中。低字內(nèi)容為偏移地址,高字內(nèi)容為段地址。CALL代碼段數(shù)據(jù)段IPHIPLCSHCSL[DI][DI]+1[DI]+2[DI]+3CALLDWORDPTR
[DI]
(2)返回指令RET段內(nèi)返回指令RET的操作為: IP←((SP)+1,(SP));棧頂內(nèi)容彈出到IP SP←(SP)+2段間返回指令RET的操作為: IP←((SP)+1,(SP));棧頂內(nèi)容彈出到IP SP←(SP)+2 CS←((SP)+1,(SP));棧頂內(nèi)容彈出到CS SP←(SP)+2另有一種帶立即數(shù)返回指令:RETn 其中n為偶數(shù),表示從棧頂彈出地址后另外丟棄的字節(jié)數(shù)。 例:RET4;返回后再丟棄棧頂?shù)?個字節(jié)4中斷控制指令
8086/8088CPU在程序中允許安排一條中斷指令來引起一個中斷過程,這種中斷叫內(nèi)部中斷,或叫軟中斷。中斷指令共有三條:
(1)INTn執(zhí)行類型n的中斷服務(wù)程序,N=0~255(2)INTO
執(zhí)行溢出中斷的中斷服務(wù)程序;
(3)IRET
從中斷服務(wù)程序返回調(diào)用程序。(1)INTn;n=0~255,為中斷類型號本指令的操作步驟為:①((SP)-1,(SP)-2)←(FLAGS),SP←(SP)-2
保護(hù)標(biāo)志寄存器的內(nèi)容②IF←0,TF←0
中斷服務(wù)程序中禁止外部INTR中斷和單步中斷③((SP)-1,(SP)-2)←(CS),SP←(SP)-2,CS←(n*4+2) 中斷服務(wù)程序的段地址送入CS。n*4為向量地址。該向量地址中的內(nèi)容即為中斷服務(wù)程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人財產(chǎn)抵押借款簡易協(xié)議文本版A版
- 二零二四全新石灰石環(huán)保綜合利用合同3篇
- 2024版特種設(shè)備吊裝運輸合同3篇
- 個人房產(chǎn)買賣規(guī)范協(xié)議2024版A版
- 2024年04月中國建設(shè)銀行北京市分行度社會招考專業(yè)人才筆試歷年參考題庫附帶答案詳解
- 2025年農(nóng)業(yè)科技推廣合同會簽紀(jì)要3篇
- 2024版輪胎承包合同協(xié)議書
- 二零二五年度物流并購保密及市場共享協(xié)議2篇
- 專業(yè)節(jié)電器產(chǎn)品銷售協(xié)議規(guī)范2024版A版
- 2024年03月貴州貴州銀行六盤水分行招考筆試歷年參考題庫附帶答案詳解
- GB/T 12914-2008紙和紙板抗張強(qiáng)度的測定
- GB/T 1185-2006光學(xué)零件表面疵病
- ps6000自動化系統(tǒng)用戶操作及問題處理培訓(xùn)
- 家庭教養(yǎng)方式問卷(含評分標(biāo)準(zhǔn))
- 城市軌道交通安全管理課件(完整版)
- 線纜包覆擠塑模設(shè)計和原理
- TSG ZF001-2006 安全閥安全技術(shù)監(jiān)察規(guī)程
- 部編版二年級語文下冊《蜘蛛開店》
- 鍋爐升降平臺管理
- 200m3╱h凈化水處理站設(shè)計方案
- 個體化健康教育記錄表格模板1
評論
0/150
提交評論