版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(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)移指令的實(shí)質(zhì):改變IP(或CS)的內(nèi)容。所有轉(zhuǎn)移指令不會(huì)影響標(biāo)志位。分為無條件轉(zhuǎn)移和條件轉(zhuǎn)移兩種。(1)無條件轉(zhuǎn)移指令JMP①段內(nèi)直接轉(zhuǎn)移(相對(duì)轉(zhuǎn)移)
轉(zhuǎn)移的目標(biāo)地址由指令直接給出。指令中直接給出的目標(biāo)地址實(shí)際上是一個(gè)相對(duì)于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)地址(偏移量)由寄存器或存儲(chǔ)單元的內(nèi)容給出。
例:JMPSI
若指令執(zhí)行前(SI)=1200H,則指令執(zhí)行后,(IP)=1200H,于是轉(zhuǎn)向代碼段的偏移地址1200H處執(zhí)行。②段內(nèi)間接轉(zhuǎn)移注意:目標(biāo)地址以段內(nèi)偏移的形式給出,而不是相對(duì)于IP的位移量,所以它是一個(gè)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)地址是一個(gè)字(16位偏移地址)。②段內(nèi)間接轉(zhuǎn)移
在指令中直接給出要轉(zhuǎn)移到的目的段地址和偏移地址。
例:JMP 2000:1000H
執(zhí)行時(shí),(IP)←1000H,(CS)←2000H③段間直接轉(zhuǎn)移注:直接地址為符號(hào)地址時(shí),段間直接轉(zhuǎn)移指令中的符號(hào)地址前應(yīng)加操作符FARPTR。
例:JMP FARPTR
far_label
其中的far_label為遠(yuǎn)類型的標(biāo)號(hào)。④段間間接轉(zhuǎn)移
轉(zhuǎn)移的目的地址(段和偏移)在兩個(gè)相鄰的字存儲(chǔ)單元中。例如: 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)測(cè)試單個(gè)標(biāo)志位。(2)用于帶符號(hào)數(shù)比較。(3)用于無符號(hào)數(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;符號(hào)標(biāo)志SF=1,則轉(zhuǎn)移
JNS;符號(hào)標(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ù)單個(gè)標(biāo)志位設(shè)置的條件轉(zhuǎn)移指令ii判斷無符號(hào)數(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判斷有符號(hào)數(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中兩無符號(hào)數(shù)的較大數(shù)存WMAX單元。CMPAX,BX;比較AX和BX
JAEnext ;若AX≥BX,轉(zhuǎn)移
XCHGAX,BX;AX<BX,交換next: MOVWMAX,AX;存較大數(shù)如果AX和BX存放的是有符號(hào)數(shù),則條件轉(zhuǎn)移指令應(yīng)采用JGE指令例:地址為DATA的存儲(chǔ)單元中存放著一個(gè)帶符號(hào)的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指令與下面的指令段等價(jià):
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ǎn)調(diào)用子程序時(shí),IP(CS)的內(nèi)容被壓入堆棧棧頂。從子程序返回時(shí),棧頂?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í)行時(shí),它首先將IP內(nèi)容壓棧,然后把指令中給出的位移量加到IP上。
②段內(nèi)間接調(diào)用子程序的偏移地址在寄存器或存儲(chǔ)器中。格式:CALL
mem16/reg16 CALL執(zhí)行時(shí),它首先將IP內(nèi)容壓棧,然后把指定的寄存器/存儲(chǔ)器的內(nèi)容送入IP。例:
CALLAX
;調(diào)用地址由AX給出
CALLWORDPTR[SI]
;調(diào)用地址由存儲(chǔ)器給出.例:對(duì)于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)用
子程序的段地址和偏移地址為存儲(chǔ)器的連續(xù)4個(gè)單元中的內(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四個(gè)存儲(chǔ)單元中。低字內(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ù)?個(gè)字節(jié)4中斷控制指令
8086/8088CPU在程序中允許安排一條中斷指令來引起一個(gè)中斷過程,這種中斷叫內(nèi)部中斷,或叫軟中斷。中斷指令共有三條:
(1)INTn執(zhí)行類型n的中斷服務(wù)程序,N=0~255(2)INTO
執(zhí)行溢出中斷的中斷服務(wù)程序;
(3)IRET
從中斷服務(wù)程序返回調(diào)用程序。(1)INTn;n=0~255,為中斷類型號(hào)本指令的操作步驟為:①((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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物科技行業(yè)月度個(gè)人工作計(jì)劃
- 2024秋北師大版數(shù)學(xué)七年級(jí)上冊(cè)1.2 從立體圖形到平面圖形課時(shí)2課件
- 2021-2022學(xué)年陜西省西安市雁塔區(qū)高新一中八年級(jí)(上)第一次月考數(shù)學(xué)試卷(附答案詳解)
- 商品控銷協(xié)議書范文模板
- 離婚斷絕子女關(guān)系協(xié)議書范文文本
- 挖機(jī)合伙人合同協(xié)議書范文范本
- 科藝新視界-探索創(chuàng)新碰撞無限可能
- 文物保護(hù)與歷史傳承-文化愛好者參與文物保護(hù)
- 工商注冊(cè)地址無償使用租賃合同(3篇)
- 檔案室個(gè)人工作總結(jié)
- 第五章霍普菲爾德(Hopfield)神經(jīng)網(wǎng)絡(luò)
- 全國國防教育示范學(xué)校形象標(biāo)識(shí)、金屬牌匾樣式
- 德國WMF壓力鍋使用手冊(cè)
- 市政府質(zhì)量獎(jiǎng)組織概述
- 圍棋教學(xué)計(jì)劃
- 臨時(shí)用地復(fù)耕方案
- 處方調(diào)劑流程
- 國有企業(yè)共青團(tuán)創(chuàng)新工作方法研究
- 建筑行業(yè)(建筑工程)建設(shè)項(xiàng)目設(shè)計(jì)方案規(guī)模劃分表.doc
- 二年級(jí)上數(shù)學(xué)老師家長會(huì)ppt.ppt
- 辦理營業(yè)執(zhí)照委托書
評(píng)論
0/150
提交評(píng)論