版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、四 控制轉(zhuǎn)移指令轉(zhuǎn)移類指令 循環(huán)控制指令 過程調(diào)用和返回指令中斷控制類指令2 循環(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)志位。格式:LOOP label操作:(CX)-1CX; 若(CX)0,則轉(zhuǎn)至label處執(zhí)行; 否則退出循環(huán),執(zhí)行LOOP后面的指令。 LOOP指令與下面的指令段等價: DEC CX JNZ label(1)循環(huán)轉(zhuǎn)移指令LOOP(2) LOOPZ (LOOPE)格式:LOOPZ label操作:(CX)-1CX; 若(CX)0且ZF=1,則轉(zhuǎn)至label處繼續(xù)循環(huán); 否則退
2、出循環(huán),執(zhí)行LOOP后面的指令。(3) LOOPNZ (LOOPNE)格式:LOOPNZ label操作:(CX)-1CX; 若(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ù)子程序入口的尋址方
3、式,子程序調(diào)用有四類。 段內(nèi)直接調(diào)用子程序的偏移地址直接由CALL指令給出。 格式:CALL NEAR_PROC CALL執(zhí)行時,它首先將IP內(nèi)容壓棧,然后把指令中給出的位移量加到IP上。段內(nèi)間接調(diào)用子程序的偏移地址在寄存器或存儲器中。 格式:CALL mem16/reg16 CALL執(zhí)行時,它首先將IP內(nèi)容壓棧,然后把指定的寄存器/存儲器的內(nèi)容送入IP。例: CALL AX ;調(diào)用地址由AX給出CALL WORD PTRSI ;調(diào)用地址由存儲器給出.例:對于 CALL WORD PTR SI這條指令若:(DS) = 8000H,(SI) = 1200H則指令操作圖示如下。CALL IPH I
4、PL代碼段數(shù)據(jù)段81200H81201H段間直接調(diào)用 子程序的段地址和偏移地址直接由CALL指令給出。 格式:CALL FAR_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 新偏移地址例:CALL2000H:1000H段間間接調(diào)用子程序的段地址和偏移地址為存儲器的連續(xù)4個單元中的內(nèi)容。 格式:CALL mem32指令的操作為: (SP)-1,(SP)-2)(CS) ;原CS壓棧 SP(SP)-2 CS(mem32+2) (SP)
5、-1,(SP)-2)(IP) ;原IP壓棧 SP(SP)-2 IP(mem32)例:CALL DWORD PTRDI 調(diào)用地址在DI,DI+1,DI+2,DI+3四個存儲單元中。低字內(nèi)容為偏移地址,高字內(nèi)容為段地址。CALL代碼段數(shù)據(jù)段 IPH IPL CSH CSLDIDI+1DI+2DI+3CALL DWORD PTR DI(2)返回指令RET段內(nèi)返回指令RET的操作為: IP(SP)+1,(SP) ;棧頂內(nèi)容彈出到IPSP(SP)+2段間返回指令RET的操作為: IP(SP)+1,(SP) ;棧頂內(nèi)容彈出到IP SP(SP)+2 CS(SP)+1,(SP) ;棧頂內(nèi)容彈出到CSSP(SP
6、)+2另有一種帶立即數(shù)返回指令:RET n其中n為偶數(shù),表示從棧頂彈出地址后另外丟棄的字節(jié)數(shù)。例:RET 4 ;返回后再丟棄棧頂?shù)?個字節(jié)4 中斷控制指令8086/8088 CPU在程序中允許安排一條中斷指令來引起一個中斷過程,這種中斷叫內(nèi)部中斷,或叫軟中斷。 中斷指令共有三條: (1) INT n 執(zhí)行類型n的中斷服務(wù)程序,N=0255 (2) INTO 執(zhí)行溢出中斷的中斷服務(wù)程序; (3) IRET 從中斷服務(wù)程序返回調(diào)用程序。四 串操作指令字符串傳送指令MOVSB/MOVSW字符串比較指令CMPSB /CMPSW 字符串檢索指令SCASB/ SCASW取字符串指令 LODSB /LODS
7、W存字符串指令 STOSB/STOSW串:順序放在內(nèi)存中的一組相同類型的數(shù)據(jù)。串操作:對串中的元素進(jìn)行相同的操作。串操作的尋址方式:源操作數(shù)指針DS:SI(DS可重設(shè))目的操作數(shù)指針ES:DI每次串操作后:串操作指令自動修改SI和DI字節(jié):1,字:2。DF標(biāo)志決定。注意:退出串操作后,指針指向最后操作的元素的 下一個元素。 功能:可完成存儲單元到存儲單元的傳送、比較(也僅是串指令可以)。 有的串操作指令前面可加重復(fù)前綴。當(dāng)使用重復(fù)前綴時,操作重復(fù)次數(shù)由CX決定(CX自動減量)。該指令重復(fù)執(zhí)行,直至(CX)=0為止。注意:執(zhí)行串指令之前,應(yīng)先進(jìn)行如下設(shè)置: 1)源串首地址(末地址) SI 2)目
8、的串首地址(末地址) DI 3)串長度 CX 4)建立方向標(biāo)志(CLD使DF=0(增),STD使DF=1 (減) )(1)串傳送指令MOVSB / MOVSW指令執(zhí)行的操作為:MOVSB ; (ES):(DI)(DS):(SI) SI1, DI1 MOVSW ;(ES):(DI+1)(DI)(DS):(SI+1)(SI) SI2, DI2 注意: 原串用DS:SI尋址, 目標(biāo)串用ES:DI尋址 是唯一的原操作數(shù)和目的操作數(shù)在存儲器中的傳送指令。 例: 在數(shù)據(jù)段ADDR1地址處有200個數(shù)據(jù),要傳送到數(shù)據(jù)段地址ADDR2處。MOV SI, OFFSET ADDR1MOV DI, OFFSET A
9、DDR2MOV CX, 200CLDREP MOVSBLEA SI, ADDR1LEA DI, ADDR2(2)串比較指令CMPSB / CMPSW指令執(zhí)行的操作為:CMPSB ;(DS):(SI)-(ES):(DI) SI1, DI1 CMPSW ;(DS):(SI+1)(SI)-(ES):(DI+1)(DI) SI2, DI2 比較的結(jié)果只反映在標(biāo)志位上,串本身無變化。本指令可用來檢查兩個串是否相等。與重復(fù)前綴REPZ/REPE、REPNZ/REPNE結(jié)合使用。(3)串掃描 SCASB / SCASW執(zhí)行的操作: 對字節(jié):(AL)(ES):(DI) DI1 對字: (AX)(ES):(DI
10、1)(DI) DI2搜索指令執(zhí)行的仍是比較(減法)操作,結(jié)果只影響標(biāo)志位。要搜索的關(guān)鍵字放在AL(字節(jié))或AX(字)中。本指令用于在串中查找指定的信息。與重復(fù)前綴REPZ/REPE、REPNZ/REPNE結(jié)合使用。(4)串讀取指令LODSB / LODSW執(zhí)行的操作為: 對字節(jié):(AL)(DS):(SI) SI1 對字:(AX)(DS):(SI+1)(SI) SI2 串讀取指令通常不加重復(fù)前綴。LODSB等價于: LODSW等價于: MOV AL,SI MOV AX,SI INC SI INC SI INC SI (5)串存儲指令 STOSB / STOSW 寫指令的操作為: 對字節(jié):(ES)
11、:(DI)(AL) DI1 對字 :(ES):(DI+1)(DI)(AX) DI2 本指令用于把一塊存儲區(qū)域填充成某一 初始值(即對存儲區(qū)進(jìn)行初始化)。例:把1000H開始的100個存儲單元填入 ASCII碼2AH(*)。程序段如下: MOV DI, 1000H ; 首地址 MOV AL, 2AH ; * MOV CX, 100 ; 重復(fù)執(zhí)行100次 CLD ; 增量修改DI REPSTOSB本章小結(jié)80 x86指令的操作數(shù)包括3種形式:立即數(shù)、寄存器(通用寄存器和段寄存器)與內(nèi)存操作數(shù)。對于內(nèi)存操作數(shù),由操作數(shù)的形式可計算出有效地址。在缺省情況下,其段地址隱含在段寄存器DS或SS中,除非由段
12、超越前綴明確給出。大多數(shù)指令(如傳送類指令)的執(zhí)行不影響標(biāo)志位,某些指令(如算術(shù)指令)的執(zhí)行按一般規(guī)則影響標(biāo)志位,還有一部分指令(如邏輯指令)會按特定方式(清0、置1等)影響標(biāo)志位。部分8086/8088常用指令指令類型助記符數(shù)據(jù)傳送數(shù)據(jù)傳送MOV,PUSH/POP,XCHG等地址傳送LEA,LDS,LES輸入輸出IN,OUT算術(shù)運算加法ADD,ADC,INC減法SUB,SBB,DEC,NEG,CMP乘/除法MUL,IMUL,DIV,IDIV邏輯AND,OR,NOT,XOR,TEST移位SHL/SHR/SAR,ROL/ROR,RCL/RCR串操作MOVS,CMPS,SCAS,LODS,STOS
13、控制轉(zhuǎn)移JMP,JXX,LOOP,CALL/RET,INT/IRET練習(xí): 已知(AX)=1234H,執(zhí)行下面3條指令后,(AX)=_. MOV BX,AX NEG BX ADD AX,BX0000H(2) 如執(zhí)行 XOR AH,AH MOV AL,90H CWD 指令后,結(jié)果是_(DX,AX)=0000 0090H(3) 解析下面程序段,回答問題: MOV CX,DX NOT CX ADD CX,DX INC CX 問:(CX)=_,(ZF)=_0000H1(4) 下面指令序列完成的運算表達(dá)式應(yīng)是_ MOV AL,BYTE PTR X SHL AL,1 DEC AL MOV BYTE PTR
14、 Y,ALY=2*X-1MOV CL , 8ROL AX , CLADD AX , BX(5) 已知 (AX)=0012H, (BX)=0043H,要求把它們形成(AX)=1234H 提示:可以用循環(huán)移位指令作 業(yè)1.指出下列指令的錯誤:(1) MOV AX,SIDI(2) MOV BX,SI(3) ADD AX,BYTE PTRBX(4) JMP BYTE PTRBX(5) OUT 230H, AX2.堆棧指針寄存器SP的初值為1000H,(AX)=2000H,(BX)=3000H,試問:(1)執(zhí)行指令PUSH AX后,(SP)=( )(2)再執(zhí)行指令PUSH BX和POP AX后,(SP=( ),(AX)=(
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年五金建材加盟協(xié)議
- 2025年分期家庭教育合同
- 《小島失蹤之謎》課件
- 2025年度綠色環(huán)保木材進(jìn)口與銷售合作合同范本大全4篇
- 二零二五年度冷鏈物流倉單質(zhì)押貸款服務(wù)協(xié)議2篇
- 二零二五年度競業(yè)禁止協(xié)議法律風(fēng)險防控及合規(guī)咨詢合同
- 二零二五年度商業(yè)地產(chǎn)地下車位銷售及品牌推廣協(xié)議
- 二零二五年度股份有限公司私下股份分配與公司戰(zhàn)略協(xié)議書
- 二零二五版鋁單板幕墻材料采購專項合同4篇
- 二零二五年度離婚協(xié)議中兩個子女教育支持合同
- 2025屆安徽省皖南八校高三上學(xué)期8月摸底考試英語試題+
- 工會資金采購管理辦法
- 玩具活動方案設(shè)計
- Q∕GDW 516-2010 500kV~1000kV 輸電線路劣化懸式絕緣子檢測規(guī)程
- 2024年湖南汽車工程職業(yè)學(xué)院單招職業(yè)技能測試題庫及答案解析
- 家長心理健康教育知識講座
- GB/T 292-2023滾動軸承角接觸球軸承外形尺寸
- 2024年九省聯(lián)考高考數(shù)學(xué)卷試題真題答案詳解(精校打?。?/a>
- 軍人結(jié)婚函調(diào)報告表
- 民用無人駕駛航空器實名制登記管理規(guī)定
- 北京地鐵6號線
評論
0/150
提交評論