




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、3.3.4 串操作指令l串串內(nèi)存中延續(xù)存放的字節(jié)或字類型內(nèi)存中延續(xù)存放的字節(jié)或字類型的數(shù)據(jù)的數(shù)據(jù).l 以字節(jié)以字節(jié)B為單位的字節(jié)串;為單位的字節(jié)串;l 以字以字W為單位的字串。為單位的字串。l字符串長(zhǎng)度可達(dá)字符串長(zhǎng)度可達(dá)64K字節(jié)。字節(jié)。l串操作指令共有五種根本指令,可以對(duì)串操作指令共有五種根本指令,可以對(duì)字符串進(jìn)展傳送、比較、搜索及存和取字符串進(jìn)展傳送、比較、搜索及存和取操作。操作。 *l待操作的數(shù)據(jù)串稱為源串,目的地址稱為目的串。待操作的數(shù)據(jù)串稱為源串,目的地址稱為目的串。l兩種情況:兩種情況:l1、兩個(gè)操作數(shù)均為串?dāng)?shù)據(jù);、兩個(gè)操作數(shù)均為串?dāng)?shù)據(jù);l MOVS 用于將一串從源挪動(dòng)到目的用于將
2、一串從源挪動(dòng)到目的l CMPS 用于將兩串逐一比較用于將兩串逐一比較l2、兩個(gè)操作數(shù)一為、兩個(gè)操作數(shù)一為AL/AX,另一為串,另一為串l STOS 用于將用于將AL/AX中字節(jié)中字節(jié)/字填充到目的串字填充到目的串l LODS 用于從源串中取字節(jié)用于從源串中取字節(jié)/字到字到AL/AXl SCAS 用于在目的串中查找特定的字節(jié)用于在目的串中查找特定的字節(jié)/字字串操作指令的操作數(shù)見表3.8串操作指令的特點(diǎn)商定l源串普通存放在數(shù)據(jù)段,偏移地址由源串普通存放在數(shù)據(jù)段,偏移地址由SI指定。邏輯地址為指定。邏輯地址為DS:SI,允許段超越;,允許段超越;l目的串必需在附加段目的串必需在附加段(ES),偏移地
3、址由,偏移地址由DI指定,邏輯地址為指定,邏輯地址為ES:SI ;l每執(zhí)行一次串指令,地址指針每執(zhí)行一次串指令,地址指針SI和和DI將自動(dòng)修正,修正方向由將自動(dòng)修正,修正方向由DF決決議。議。l DF=0 增址增址 +1/+2; CLDl DF=1 減址減址 - 1/- 2; STDl數(shù)據(jù)塊長(zhǎng)度字節(jié)或字?jǐn)?shù)放在數(shù)據(jù)塊長(zhǎng)度字節(jié)或字?jǐn)?shù)放在CX中;中;l可添加自動(dòng)反復(fù)前綴以實(shí)現(xiàn)串操作的反復(fù)執(zhí)行可添加自動(dòng)反復(fù)前綴以實(shí)現(xiàn)串操作的反復(fù)執(zhí)行;l 也可設(shè)計(jì)普通循環(huán)來實(shí)現(xiàn)也可設(shè)計(jì)普通循環(huán)來實(shí)現(xiàn)串操作的普通流程取源串首/尾 地址取目的串首/尾地址設(shè)循環(huán)次數(shù)串長(zhǎng)度設(shè)置方向DF 串操作指令串操作指令修正串長(zhǎng)度值修正串長(zhǎng)
4、度值傳送完否?傳送完否?反復(fù)前綴l反復(fù)次數(shù)隱含在反復(fù)次數(shù)隱含在CX存放器中,反復(fù)過程中會(huì)自存放器中,反復(fù)過程中會(huì)自動(dòng)修正動(dòng)修正CX值。值。lREP 無條件反復(fù)無條件反復(fù)lREPE 相等反復(fù)相等反復(fù)lREPZ 為零反復(fù)為零反復(fù)lREPNE 不相等反復(fù)不相等反復(fù)lREPNZ 不為零反復(fù)不為零反復(fù)條件條件反復(fù)反復(fù)CX0且且ZF=1CX0且且ZF=0CX0 反復(fù)反復(fù)串操作指令l串傳送串傳送 MOVSl串比較串比較 CMPSl串掃描串掃描 SCASl串讀取串讀取 LODSl串送存串送存 STOS1、串傳送指令MOVS l格式:格式: 1) MOVS 目的串,原串目的串,原串l MOVSB ;字節(jié)串傳送字
5、節(jié)串傳送,傳送一個(gè)傳送一個(gè)8位的元素。位的元素。l ES:DIDS:SIl SISI1,DIDI1l MOVSW ;字串傳送,傳送一個(gè)字串傳送,傳送一個(gè)16位的元位的元素。素。l ES:DIDS:SIl SISI2,DIDI2l串傳送指令常與無條件反復(fù)前綴串傳送指令常與無條件反復(fù)前綴REP連用連用可實(shí)現(xiàn)可實(shí)現(xiàn)存儲(chǔ)器存儲(chǔ)器到存儲(chǔ)到存儲(chǔ)器的數(shù)器的數(shù)據(jù)傳送據(jù)傳送 LEA SI,DATA1 LEA DI,DATA2 MOV CX,200 CLD REP MOVSB l例:用串傳送指令實(shí)現(xiàn)例:用串傳送指令實(shí)現(xiàn)200個(gè)字節(jié)數(shù)據(jù)的串的傳送:個(gè)字節(jié)數(shù)據(jù)的串的傳送: LEA SI,DATA1 LEA DI,DA
6、TA2 MOV CX,200 CLDAGAIN: MOVSB DEC CX JNZ AGAIN l先執(zhí)行,再判別先執(zhí)行,再判別l先判別,再執(zhí)行先判別,再執(zhí)行REP MOVSB 執(zhí)行的操作:l假設(shè)假設(shè)CX=0時(shí),串指令執(zhí)行終了,否那么執(zhí)行時(shí),串指令執(zhí)行終了,否那么執(zhí)行l(wèi)CX=CX-1l執(zhí)行串指令執(zhí)行串指令MOVSBl再前往執(zhí)行再前往執(zhí)行循環(huán)過程為:先判別,再執(zhí)行循環(huán)過程為:先判別,再執(zhí)行 CX=0 ,為循環(huán)終了的條件。,為循環(huán)終了的條件。2、串比較指令CMPS l格式:格式:l CMPSBl CMPSWl功能:由功能:由(DS:SI) (ES:DI)的差值的差值l 設(shè)置標(biāo)志位設(shè)置標(biāo)志位 A,C,
7、O,P,S,Z。l SISI1/2,DIDI1/2l指令的執(zhí)行不改動(dòng)操作數(shù),僅影響標(biāo)志位。指令的執(zhí)行不改動(dòng)操作數(shù),僅影響標(biāo)志位。l串比較指令常與條件反復(fù)前綴串比較指令常與條件反復(fù)前綴REPE/REPNE連用。連用。 LEA SI,DATA1 LEA DI,DATA2 MOV CX,200 CLD REPE CMPSB JNZ UNMAT MAT: UNMAT: l例:比較兩個(gè)串能否一樣例:比較兩個(gè)串能否一樣 (兩個(gè)串長(zhǎng)度一樣兩個(gè)串長(zhǎng)度一樣 LEA SI,DATA1 LEA DI,DATA2 MOV CX,200 CLDAGAIN: CMPSB JNE UNMAT DEC CX JNZ AGAI
8、N MAT: UNMAT : REPE CMPSB 執(zhí)行的操作:lCX0且且ZF=1一樣時(shí),繼續(xù)執(zhí)行一樣時(shí),繼續(xù)執(zhí)行否否那么終了執(zhí)行串指令那么終了執(zhí)行串指令,跳出循環(huán)。跳出循環(huán)。lCX=CX-1l執(zhí)行串指令執(zhí)行串指令CMPSl反復(fù)執(zhí)行反復(fù)執(zhí)行循環(huán)過程為:先判別,再執(zhí)行循環(huán)過程為:先判別,再執(zhí)行循環(huán)終了的條件:循環(huán)終了的條件:CX=0或或ZF=0有不同有不同 。串比較指令例測(cè)試測(cè)試200個(gè)字節(jié)數(shù)據(jù)能否傳送正確個(gè)字節(jié)數(shù)據(jù)能否傳送正確,如有錯(cuò)誤,將如有錯(cuò)誤,將第一個(gè)出現(xiàn)的錯(cuò)誤位置記錄下來第一個(gè)出現(xiàn)的錯(cuò)誤位置記錄下來,存到存到BX里里lLEA SI,MEM1lLEA DI,MEM2lMOV CX,20
9、0lCLD lXOR AL,ALlREPE CMPSB lJZ STOP DEC SI MOV BX,SISTOP: CX0,ZF=0 出現(xiàn)不等元素出現(xiàn)不等元素 CX=0 ,ZF=0 最后一個(gè)元素不等最后一個(gè)元素不等 CX=0, ZF=1 兩串相等兩串相等終了循環(huán)終了循環(huán)后,后,CX與與ZF的形狀的形狀3、串搜索指令SCASl格式:格式:l SCASBl SCASWl操作:與操作:與CMPS指令類似,只是源操作數(shù)是指令類似,只是源操作數(shù)是AX/AL 。l AL/AX (ES:DI), DIDI1/2l運(yùn)用:運(yùn)用:l常用于在目的串常用于在目的串(指定存儲(chǔ)區(qū)域指定存儲(chǔ)區(qū)域)中尋覓某個(gè)關(guān)鍵字。中尋覓
10、某個(gè)關(guān)鍵字。關(guān)鍵字存放在關(guān)鍵字存放在AX或或AL中。中。l指令??膳c條件反復(fù)前綴指令??膳c條件反復(fù)前綴REPE/REPNE連用連用程序段:START: LEASI , BLOCKLEADI , PDATALEABX, NDATAMOVCX , 100 LOP:LODSB;取源串的一個(gè)字節(jié)送ALTESTAL , 80H;測(cè)試符號(hào)位JNZMINUS;是負(fù)數(shù),轉(zhuǎn)移到MINUSSTOSB;正數(shù)存入正數(shù)區(qū)域JMPNEXTMINUS:XCHGBX, DI;交換正、負(fù)數(shù)指針STOSB;負(fù)數(shù)送入負(fù)數(shù)區(qū)XCHG BX, DI;恢復(fù)正、負(fù)數(shù)指針NEXT: DECCX;次數(shù)減1JNZLOP;未處置完,繼續(xù)HLT4、
11、串讀取指令LODSl格式:格式:l LODSBl LODSWl操作:對(duì)字節(jié):操作:對(duì)字節(jié): AL (DS:SI)l 對(duì)對(duì) 字:字: AX (DS:SI)l SISI1/2l用于將內(nèi)存某個(gè)區(qū)域的數(shù)據(jù)串依次裝入累加用于將內(nèi)存某個(gè)區(qū)域的數(shù)據(jù)串依次裝入累加器,以便顯示或輸出到接口。器,以便顯示或輸出到接口。lLODS指令普通不加反復(fù)前綴。指令普通不加反復(fù)前綴。5、串送存指令STOS l格式:格式:l STOSBl STOSWl操作:對(duì)字節(jié):操作:對(duì)字節(jié): AL (ES:DI)l 對(duì)對(duì) 字:字: AX (ES:DI)l DIDI1/2l可與反復(fù)前綴可與反復(fù)前綴REP連用連用串送存指令例 將內(nèi)存某個(gè)區(qū)域清
12、零l設(shè)計(jì)思想:設(shè)計(jì)思想: 串首串首/尾地址送尾地址送ES:DI串長(zhǎng)度送串長(zhǎng)度送CX置方向標(biāo)志置方向標(biāo)志DF0送累加器送累加器AL反復(fù)執(zhí)行串送存指令反復(fù)執(zhí)行串送存指令 REP STOS3.4.5 程序控制傳送指令l 轉(zhuǎn)移指令轉(zhuǎn)移指令 JMP、JCCl 循環(huán)控制循環(huán)控制 LOOP、LOOPZ、LOOPNZl 過程調(diào)用和前往過程調(diào)用和前往 CALL、RETl 中斷指令中斷指令 INT、IRET、INTOl控制程序的執(zhí)行順序??刂瞥绦虻膱?zhí)行順序。l本質(zhì)為經(jīng)過改動(dòng)本質(zhì)為經(jīng)過改動(dòng)IP或或CS、IP的值的值l 來改動(dòng)程序的執(zhí)行順序。來改動(dòng)程序的執(zhí)行順序。 一一 轉(zhuǎn)移指令轉(zhuǎn)移指令無條件轉(zhuǎn)移指令無條件轉(zhuǎn)移指令J
13、MP 無條件轉(zhuǎn)移到目的地址,執(zhí)行新的指令無條件轉(zhuǎn)移到目的地址,執(zhí)行新的指令有條件轉(zhuǎn)移指令有條件轉(zhuǎn)移指令JCC 在具備一定條件的情況下轉(zhuǎn)移到目的地址在具備一定條件的情況下轉(zhuǎn)移到目的地址l轉(zhuǎn)移指令的本質(zhì):改動(dòng)轉(zhuǎn)移指令的本質(zhì):改動(dòng)IP(IP(或或CSCS、IP)IP)的值。的值。l分為分為l一切轉(zhuǎn)移指令不會(huì)影響標(biāo)志位。一切轉(zhuǎn)移指令不會(huì)影響標(biāo)志位。1、無條件轉(zhuǎn)移指令、無條件轉(zhuǎn)移指令JMPl格式:格式:l JMP OPRD目的地址目的地址與與JMP在同在同一代碼段一代碼段與與JMP不在不在同一代碼段同一代碼段代代碼碼段段2代代碼碼段段1段內(nèi)段內(nèi)轉(zhuǎn)移轉(zhuǎn)移段間段間轉(zhuǎn)移轉(zhuǎn)移段內(nèi)轉(zhuǎn)移段內(nèi)轉(zhuǎn)移指令中直接給出目的地
14、址指令中直接給出目的地址由指令中的存放器或存儲(chǔ)器由指令中的存放器或存儲(chǔ)器操作數(shù)指出目的地址操作數(shù)指出目的地址段內(nèi)直接尋址段內(nèi)直接尋址段內(nèi)間接尋址段內(nèi)間接尋址轉(zhuǎn)移的目的地址在當(dāng)前代碼段內(nèi)轉(zhuǎn)移的目的地址在當(dāng)前代碼段內(nèi)段間轉(zhuǎn)移段間轉(zhuǎn)移轉(zhuǎn)移的目的地址在另一代碼段內(nèi)轉(zhuǎn)移的目的地址在另一代碼段內(nèi)段間直接尋址段間直接尋址段間間接尋址段間間接尋址由指令中的存儲(chǔ)器操作數(shù)指由指令中的存儲(chǔ)器操作數(shù)指出目的地址出目的地址指令中直接給出目的地址指令中直接給出目的地址l段內(nèi)直接尋址段內(nèi)直接尋址l 格式:格式:JMP Label JMP指令的下一條指令的下一條指令的偏移地址指令的偏移地址短轉(zhuǎn)移:位移量在短轉(zhuǎn)移:位移量在-1
15、28 +127 之間。之間。 SHORT 近轉(zhuǎn)移:位移量在近轉(zhuǎn)移:位移量在-32768+32767 之間之間. NEAR PTR JMP Label代代碼碼段段位移量位移量功能:功能:IP 當(dāng)前當(dāng)前IP + 位移量位移量l稱為相對(duì)尋址稱為相對(duì)尋址標(biāo)號(hào)標(biāo)號(hào) JMP SHORT L1 MOV AX , 0 MOV BX , 0 MOV CX , 0L1: MOV DX , CX JMP NEAR PTR L2 .L2: MOV AL , 0l例:例:l例:例:l段內(nèi)間接尋址段內(nèi)間接尋址l 格式:格式:JMP r16 /mem16 l 功能:功能:IP r16 /mem16l例:例:l JMP BX
16、l JMP WORD PTR BX+SIl段間直接尋址段間直接尋址由指令中的由指令中的32位存儲(chǔ)器操作數(shù)位存儲(chǔ)器操作數(shù) 給出目的地址。給出目的地址。格式:格式: JMP FAR PTR Label功能:功能: IP Label的偏移地址的偏移地址 CS Label所在段的段基址所在段的段基址l段間間接尋址段間間接尋址JMP DWORD PTR mem32遠(yuǎn)地址標(biāo)號(hào)遠(yuǎn)地址標(biāo)號(hào)l JMP DWORD PTR BXXXHXXHXXHXXHBXIPCSJMP指令碼指令碼代代碼碼段段1代代碼碼段段2數(shù)數(shù)據(jù)據(jù)段段IP BX字字CS BX+2字字例:例:lJMP FAR PTR L12 、條件轉(zhuǎn)移指令l格式
17、:格式: JCC LABELl在滿足一定條件下,程序轉(zhuǎn)移到目的地址執(zhí)行,在滿足一定條件下,程序轉(zhuǎn)移到目的地址執(zhí)行,不滿足條件時(shí),繼續(xù)執(zhí)行下一條指令。不滿足條件時(shí),繼續(xù)執(zhí)行下一條指令。l條件轉(zhuǎn)移指令均為段內(nèi)短轉(zhuǎn)移,即轉(zhuǎn)移范圍為:條件轉(zhuǎn)移指令均為段內(nèi)短轉(zhuǎn)移,即轉(zhuǎn)移范圍為: -128-+127l轉(zhuǎn)移條件是判別標(biāo)志位形狀轉(zhuǎn)移條件是判別標(biāo)志位形狀l 5個(gè)可測(cè)試標(biāo)志個(gè)可測(cè)試標(biāo)志C、S、Z、O、Pl 轉(zhuǎn)移條件單測(cè)5個(gè)標(biāo)志: C、S、Z、O、PJC /JB/JNAE 低于低于JNC/JNB/JAE 高于或等于高于或等于JZ/JEJNZ/JNEJSJNSJP/JPEJNP/JPOJOJNO組合測(cè):無符號(hào)數(shù)的高低
18、:組合測(cè)無符號(hào)數(shù)的高低:組合測(cè)Z、C JA/JNBE ;高于轉(zhuǎn)移;高于轉(zhuǎn)移 CZ=0 JNA/JBE ;低于或等于轉(zhuǎn)移;低于或等于轉(zhuǎn)移 CVZ=1 比較有符號(hào)數(shù)大?。航M合測(cè)比較有符號(hào)數(shù)大小:組合測(cè)S、O、Z JG/JNLE ;大于轉(zhuǎn)移;大于轉(zhuǎn)移 SO=0 Z=0 JGE/JNL ;大于或等于轉(zhuǎn)移;大于或等于轉(zhuǎn)移 SO=0 JL/JNGE ;小于轉(zhuǎn)移;小于轉(zhuǎn)移 SO=0 且且 Z=0 JLE/JNG ;小于或等于轉(zhuǎn)移;小于或等于轉(zhuǎn)移SO=1或或Z=1測(cè)測(cè)CX: JCXZ : 假設(shè)假設(shè)CX=0,轉(zhuǎn)移,轉(zhuǎn)移例例1: ADD AL ,8 JNC L1 ADC AH ,0 L1: MOV BX , AX
19、例例2:CMP AL ,BL JA L1 ;(高于,轉(zhuǎn)移高于,轉(zhuǎn)移 L1: 例例3: MOV CX, 4 L1: ADD AL ,1 DEC CX JNE L1 MOV BL ,AL 二 反復(fù)循環(huán)控制指令l控制程序在以當(dāng)前控制程序在以當(dāng)前IP為中心的為中心的-128+127范圍范圍內(nèi)循環(huán)執(zhí)行;內(nèi)循環(huán)執(zhí)行;l循環(huán)次數(shù)由循環(huán)次數(shù)由CX存放器指定。存放器指定。 LOOP LOOPZ LOOPNZJCXZ無條件循環(huán)指令無條件循環(huán)指令LOOPl格式:格式:l LOOP Labell循環(huán)條件:循環(huán)條件:l CX 0l執(zhí)行的操作:執(zhí)行的操作:l CX=CX-1l 假設(shè)假設(shè)CX0,就繼續(xù)循環(huán);否那么,終了循環(huán)
20、就繼續(xù)循環(huán);否那么,終了循環(huán) 。l 例:例: MOV CX, 4 L1: ADD AL ,1 LOOP L1 MOV BL ,AL 相當(dāng)于:相當(dāng)于:DEC CX JNZ Label條件循環(huán)指令條件循環(huán)指令LOOPZ/LOOPNZl格式:格式:l LOOPZ LABELl LOOPE LABELl循環(huán)條件:循環(huán)條件:l CX 0且且 ZF=1l格式:格式:l LOOPNZ LABELl LOOPNE LABELl循環(huán)條件:循環(huán)條件:l CX 0 且且 ZF=0JCXZ OPRDlCX=0時(shí)轉(zhuǎn)移到目的地址,否那么順序執(zhí)行時(shí)轉(zhuǎn)移到目的地址,否那么順序執(zhí)行JCXZ的下一條指令。的下一條指令。l用在循環(huán)
21、之前,在循環(huán)次數(shù)為用在循環(huán)之前,在循環(huán)次數(shù)為0時(shí),直接跳過時(shí),直接跳過循環(huán)。循環(huán)。l MOV CX ,BX l JCXZ GONElAGAIN: l LOOP AGAINlGONE:l例:例: l MOV CX, 4l L1: ADD AL ,1l CMP AL,BL l LOOPNZ L1l MOV BL ,ALl 三、三、 過程調(diào)用過程調(diào)用CALL和前往和前往RET段內(nèi)調(diào)用段內(nèi)調(diào)用段間調(diào)用段間調(diào)用段內(nèi)直接調(diào)用段內(nèi)直接調(diào)用段內(nèi)間接調(diào)用段內(nèi)間接調(diào)用段間直接調(diào)用段間直接調(diào)用段間間接調(diào)用段間間接調(diào)用子過程調(diào)用的流程子過程調(diào)用的流程l主程序中運(yùn)用一條調(diào)用指令主程序中運(yùn)用一條調(diào)用指令 CALL PRO
22、Cl先維護(hù)斷點(diǎn)地址先維護(hù)斷點(diǎn)地址l然后改動(dòng)然后改動(dòng)IP 或或CSIPl執(zhí)行子過程,終了后要前往執(zhí)行子過程,終了后要前往l 原調(diào)用途斷點(diǎn)繼續(xù)執(zhí)行原調(diào)用途斷點(diǎn)繼續(xù)執(zhí)行l(wèi) 主程序。所以子過程要擔(dān)任恢復(fù)主程序。所以子過程要擔(dān)任恢復(fù)l 斷點(diǎn),用一條斷點(diǎn),用一條 RET 指令來恢復(fù)。指令來恢復(fù)。l在斷點(diǎn)處繼續(xù)執(zhí)行主程序在斷點(diǎn)處繼續(xù)執(zhí)行主程序斷點(diǎn)斷點(diǎn)入口入口地址地址CALLRET主程序主程序子過子過程程lCALL的功能:的功能:l 將將CALL指令的下一條指令斷點(diǎn)的地址偏移地指令的下一條指令斷點(diǎn)的地址偏移地址或段地址與偏移地址壓入堆棧址或段地址與偏移地址壓入堆棧 ;l 將子過程的入口地址子過程第將子過程的入
23、口地址子過程第1條指令的偏移地址條指令的偏移地址賦給賦給 IP或或CS/IP,即進(jìn)入子程序。,即進(jìn)入子程序。lRET的功能的功能l 將斷點(diǎn)地址由堆棧彈出到將斷點(diǎn)地址由堆棧彈出到IP 或或CS與與 IP ,即前往原,即前往原程序。程序。l留意留意CALL和和RET指令指令對(duì)堆棧的影響對(duì)堆棧的影響段內(nèi)調(diào)用段內(nèi)調(diào)用子過程與原調(diào)用程序在同一代碼段,子過程與原調(diào)用程序在同一代碼段,在調(diào)用之前只需維護(hù)斷點(diǎn)的偏移地在調(diào)用之前只需維護(hù)斷點(diǎn)的偏移地址址格式:格式: CALL PROC 近過程近過程名名 CALL r16/mem16例:例:CALL NEAR PTR TIME ; 直接調(diào)用直接調(diào)用 CALL WO
24、RD PTR SI ;間接調(diào)用間接調(diào)用段間調(diào)用段間調(diào)用子過程與原調(diào)用程序不在同一代碼段,子過程與原調(diào)用程序不在同一代碼段,在調(diào)用之前需維護(hù)斷點(diǎn)的段基地址在調(diào)用之前需維護(hù)斷點(diǎn)的段基地址和偏移地址。先將斷點(diǎn)的和偏移地址。先將斷點(diǎn)的CS壓棧,壓棧,再壓入再壓入IP。格式:格式: CALL PROC CALL mem32例:例: CALL FAR PTR TIME CALL DWORD PTR SICALL OPRD 前往指令 RETlRETRET指令普通位于子程序的最后。段內(nèi)調(diào)用的前往時(shí)是段指令普通位于子程序的最后。段內(nèi)調(diào)用的前往時(shí)是段內(nèi)前往,段間調(diào)用的前往時(shí)是段間前往。內(nèi)前往,段間調(diào)用的前往時(shí)是段
25、間前往。l格式格式1 1: RET RETl 功能:從堆棧中彈出斷點(diǎn)地址功能:從堆棧中彈出斷點(diǎn)地址(POP IP,POP CS)(POP IP,POP CS),前往,前往原程序。原程序。l l格式格式2 2:帶彈出值的:帶彈出值的RET RET l RET OPD RET OPD ;OPDOPD為為1616位無符號(hào)整數(shù)位無符號(hào)整數(shù)l 執(zhí)行的操作:執(zhí)行的操作:l恢復(fù)斷點(diǎn)恢復(fù)斷點(diǎn)POP IP, POP CS)POP IP, POP CS)lSP=SP+OPD,SP=SP+OPD,修正修正SPSP指針,使棧定回復(fù)到參數(shù)入棧以前的位指針,使棧定回復(fù)到參數(shù)入棧以前的位置。置。l 使程序方便的廢除假設(shè)干執(zhí)
26、行使程序方便的廢除假設(shè)干執(zhí)行CALLCALL前入棧的參數(shù)。前入棧的參數(shù)。例:lPUSH AXlPUSH BXlCALL PROC1lRET 4l中斷中斷l(xiāng)中斷的過程中斷的過程l中斷的來源:中斷的來源:l外部中斷:外部設(shè)備發(fā)來的中斷懇求中斷懇求信號(hào)外部中斷:外部設(shè)備發(fā)來的中斷懇求中斷懇求信號(hào) 。管理。管理I/O設(shè)備與設(shè)備與CPU之間的通訊。之間的通訊。l內(nèi)部中斷:內(nèi)部中斷:CPU執(zhí)行某條指令引起的中斷執(zhí)行某條指令引起的中斷l(xiāng)中斷向量號(hào)中斷向量號(hào) N中斷類型號(hào)、中斷號(hào)中斷類型號(hào)、中斷號(hào)l 0255 共共256種中斷類型種中斷類型l中斷向量中斷效力程序的入口地址:這是必需知道的關(guān)鍵信中斷向量中斷效力
27、程序的入口地址:這是必需知道的關(guān)鍵信息。息。 4個(gè)字節(jié),段基址:偏移量個(gè)字節(jié),段基址:偏移量l中斷向量表:按中斷向量號(hào)的順序存放中斷向量的表格。中斷向量表:按中斷向量號(hào)的順序存放中斷向量的表格。l中斷向量表的長(zhǎng)度:中斷向量表的長(zhǎng)度:256*4 B=1KB l8086中斷表的地址:中斷表的地址:00000H 003FFHlIP N*4lCS N*4+24.中斷指令有關(guān)中斷的概念:l詳見教材第詳見教材第7章章中斷指令 INT n l格式:格式:l INT nl闡明:闡明:l n4 =存放中斷效存放中斷效力子程序入口地址的力子程序入口地址的單元的地址。單元的地址。中斷類型號(hào)中斷類型號(hào)n=0 255n
28、 4 XXHXXHXXHXXH入口偏移地址賦給入口偏移地址賦給IP入口段地址賦給入口段地址賦給CS中斷向量表中斷向量表中斷指令操作:操作:將將FLAGS壓入堆棧;壓入堆棧;制止新的可屏蔽中斷和單步中斷制止新的可屏蔽中斷和單步中斷 IF=TF=0斷點(diǎn)維護(hù):將斷點(diǎn)維護(hù):將INT指令的下一條指令的地址指令的下一條指令的地址32位入棧;位入棧;取中斷效力程序入口地址。取中斷效力程序入口地址。 執(zhí)行中斷程序執(zhí)行中斷程序 中斷指令例l執(zhí)行執(zhí)行INT 21H指令后指令后l IP=?l CS=?21H4=0084H 23H11H00H20HIP CS溢出中斷指令I(lǐng)NTOl格式:格式:l INTO l假設(shè)假設(shè)OF=1,那么啟動(dòng)一個(gè)類型為那么啟動(dòng)一個(gè)類型為4的中斷過程的中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030中國(guó)電子廢物回收和再利用服務(wù)行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 2025至2030中國(guó)環(huán)氧大豆油丙烯酸酯低聚物行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 2025至2030中國(guó)豬肉行業(yè)市場(chǎng)占有率及投資前景評(píng)估規(guī)劃報(bào)告
- 2025至2030中國(guó)特性水泥行業(yè)發(fā)展分析及前景趨勢(shì)與投資報(bào)告
- 智慧城市服務(wù)體系下市民滿意度提升策略研究
- 在線學(xué)習(xí)環(huán)境下的學(xué)生心理支持策略研究
- 企業(yè)培訓(xùn)中的智慧學(xué)習(xí)空間設(shè)計(jì)與體驗(yàn)優(yōu)化
- 教育政策與教師權(quán)益保障
- 2025年中國(guó)乙炔碳黑數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 學(xué)生職業(yè)規(guī)劃與教育大數(shù)據(jù)的深度融合
- 高中體育專項(xiàng)化教學(xué)對(duì)學(xué)生身心發(fā)展的促進(jìn)作用研究論文
- 道教考試試題及答案
- TD/T 1044-2014生產(chǎn)項(xiàng)目土地復(fù)墾驗(yàn)收規(guī)程
- 肺結(jié)核競(jìng)賽試題及答案
- 2024北京重點(diǎn)校高一(下)期末數(shù)學(xué)匯編:三角函數(shù)章節(jié)綜合(填空題)
- 2025-2030中國(guó)金銀花行業(yè)消費(fèi)需求趨勢(shì)及未來前景銷售趨勢(shì)研究報(bào)告
- 2025年四川省成都市外國(guó)語(yǔ)學(xué)校七年級(jí)英語(yǔ)第二學(xué)期期末教學(xué)質(zhì)量檢測(cè)試題含答案
- 婚姻存續(xù)期協(xié)議書
- 2025年北京市西城區(qū)中考二模英語(yǔ)試題(含答案)
- 矯正牙齒合同協(xié)議書模板
- GB/T 45575-2025工業(yè)產(chǎn)品表面缺陷自動(dòng)檢測(cè)系統(tǒng)技術(shù)要求
評(píng)論
0/150
提交評(píng)論