




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、u 朱 澤 民u 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院u u指令系統(tǒng)PPT課件第第 2 章章 8086的指令系統(tǒng)的指令系統(tǒng)(三)(三)的指令系統(tǒng)PPT課件22.4 控制轉(zhuǎn)移類(lèi)指令控制轉(zhuǎn)移類(lèi)指令n控制轉(zhuǎn)移類(lèi)指令用于實(shí)現(xiàn)分支、循環(huán)、過(guò)程等程序結(jié)構(gòu),是僅次于傳送指令的常用指令重點(diǎn)掌握:JMP/Jcc/LOOP CALL/RETINT n/IRET 常用系統(tǒng)功能調(diào)用一般了解: LOOPZ/LOOPNZ INTO 控制轉(zhuǎn)移類(lèi)指令通過(guò)改變控制轉(zhuǎn)移類(lèi)指令通過(guò)改變IP(和(和CS)值,)值,實(shí)現(xiàn)程序執(zhí)行順序的改變實(shí)現(xiàn)程序執(zhí)行順序的改變的指令系統(tǒng)PPT課件32.4.1 無(wú)條件轉(zhuǎn)移指令無(wú)條件轉(zhuǎn)移指令n只
2、要執(zhí)行無(wú)條件轉(zhuǎn)移指令只要執(zhí)行無(wú)條件轉(zhuǎn)移指令JMP,就使程序轉(zhuǎn)到,就使程序轉(zhuǎn)到指定的目標(biāo)地址處,從目標(biāo)地址處開(kāi)始執(zhí)行指指定的目標(biāo)地址處,從目標(biāo)地址處開(kāi)始執(zhí)行指令令n操作數(shù)操作數(shù)label是要轉(zhuǎn)移到的是要轉(zhuǎn)移到的目標(biāo)地址(目的地目標(biāo)地址(目的地址、轉(zhuǎn)移地址址、轉(zhuǎn)移地址)JMP labelJMP label;程序轉(zhuǎn)向;程序轉(zhuǎn)向labellabel標(biāo)號(hào)指定的地址標(biāo)號(hào)指定的地址的指令系統(tǒng)PPT課件4目標(biāo)地址的范圍:段內(nèi)目標(biāo)地址的范圍:段內(nèi)n段內(nèi)轉(zhuǎn)移近轉(zhuǎn)移(near)q在當(dāng)前代碼段64KB范圍內(nèi)轉(zhuǎn)移( -3276832767)q不需要更改CS段地址,只要改變IP偏移地址n段內(nèi)轉(zhuǎn)移短轉(zhuǎn)移(short)q轉(zhuǎn)移
3、范圍可以用一個(gè)字節(jié)表達(dá),在段內(nèi)128127范圍的轉(zhuǎn)移代碼段代碼段代碼段代碼段的指令系統(tǒng)PPT課件5目標(biāo)地址的范圍:段間目標(biāo)地址的范圍:段間n段間轉(zhuǎn)移遠(yuǎn)轉(zhuǎn)移(far)q從當(dāng)前代碼段跳轉(zhuǎn)到另一個(gè)代碼段,可以在1MB范圍q更改CS段地址和IP偏移地址q目標(biāo)地址必須用一個(gè)32位數(shù)表達(dá),叫做32位遠(yuǎn)指針,它就是邏輯地址代碼段代碼段代碼段代碼段 實(shí)際編程時(shí),實(shí)際編程時(shí),MASM匯編程序會(huì)根據(jù)目標(biāo)地址的距匯編程序會(huì)根據(jù)目標(biāo)地址的距離,自動(dòng)處理成短轉(zhuǎn)移、近轉(zhuǎn)移或遠(yuǎn)轉(zhuǎn)移離,自動(dòng)處理成短轉(zhuǎn)移、近轉(zhuǎn)移或遠(yuǎn)轉(zhuǎn)移 程序員可用操作符程序員可用操作符short、near ptr 或或far ptr 強(qiáng)制強(qiáng)制的指令系統(tǒng)PPT
4、課件6nJMP指令分成指令分成4種類(lèi)型:種類(lèi)型: 段內(nèi)轉(zhuǎn)移、相對(duì)尋址段內(nèi)轉(zhuǎn)移、相對(duì)尋址 段內(nèi)轉(zhuǎn)移、間接尋址段內(nèi)轉(zhuǎn)移、間接尋址 段間轉(zhuǎn)移、直接尋址段間轉(zhuǎn)移、直接尋址 段間轉(zhuǎn)移、間接尋址段間轉(zhuǎn)移、間接尋址的指令系統(tǒng)PPT課件7段內(nèi)轉(zhuǎn)移、相對(duì)尋址段內(nèi)轉(zhuǎn)移、相對(duì)尋址JMP labelJMP label;IPIP+IPIP+位移量位移量n位移量是緊接著位移量是緊接著JMP指令后的那條指令的偏移地指令后的那條指令的偏移地址,到目標(biāo)指令的偏移地址的地址位移址,到目標(biāo)指令的偏移地址的地址位移n當(dāng)向地址增大方向轉(zhuǎn)移時(shí),位移量為正;向地址當(dāng)向地址增大方向轉(zhuǎn)移時(shí),位移量為正;向地址減小方向轉(zhuǎn)移時(shí),位移量為負(fù)減小方向
5、轉(zhuǎn)移時(shí),位移量為負(fù)again:again:dec cxdec cx;標(biāo)號(hào);標(biāo)號(hào)againagain的指令的指令jmp againjmp again;轉(zhuǎn)移到;轉(zhuǎn)移到againagain處繼續(xù)執(zhí)行處繼續(xù)執(zhí)行jmp outputjmp output;轉(zhuǎn)向;轉(zhuǎn)向outputoutputoutput:output: mov result,almov result,al;標(biāo)號(hào);標(biāo)號(hào)outputoutput的指令的指令的指令系統(tǒng)PPT課件8段內(nèi)轉(zhuǎn)移、間接尋址段內(nèi)轉(zhuǎn)移、間接尋址JMP r16/m16 JMP r16/m16 ;IPr16/m16IPr16/m16n將一個(gè)將一個(gè)1616位寄存器或主存字單元內(nèi)容送
6、入位寄存器或主存字單元內(nèi)容送入IPIP寄存器,作為新的指令指針,但不修改寄存器,作為新的指令指針,但不修改CSCS寄存器的內(nèi)容寄存器的內(nèi)容jmp axjmp ax;IPAXIPAXjmp word ptr 2000hjmp word ptr 2000h;IP2000hIP2000h的指令系統(tǒng)PPT課件9段間轉(zhuǎn)移、直接尋址段間轉(zhuǎn)移、直接尋址JMP far ptr labelJMP far ptr label;IPlabelIPlabel的偏移地址的偏移地址;CSlabelCSlabel的段地址的段地址n將標(biāo)號(hào)所在段的段地址作為新的CS值,標(biāo)號(hào)在該段內(nèi)的偏移地址作為新的IP值;這樣,程序跳轉(zhuǎn)到新的
7、代碼段執(zhí)行jmp far ptr othersegjmp far ptr otherseg;遠(yuǎn)轉(zhuǎn)移到代碼段2的otherseg的指令系統(tǒng)PPT課件10段間轉(zhuǎn)移、間接尋址段間轉(zhuǎn)移、間接尋址JMP far ptr memJMP far ptr mem;IPmemIPmem,CSmem+2CSmem+2n用一個(gè)雙字存儲(chǔ)單元表示要跳轉(zhuǎn)的目標(biāo)地址。n這個(gè)目標(biāo)地址存放在主存中連續(xù)的兩個(gè)字單元中的,低位字送IP寄存器,高位字送CS寄存器mov word ptr bx,0mov word ptr bx,0mov word ptr bx+2,1500hmov word ptr bx+2,1500hJMP far
8、 ptr bxJMP far ptr bx ;轉(zhuǎn)移到1500h:0的指令系統(tǒng)PPT課件11nJmp轉(zhuǎn)移指令的原理,可參見(jiàn):q王爽第九章的指令系統(tǒng)PPT課件122.4.2 條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令n指定的條件cc如果成立,程序轉(zhuǎn)移到由標(biāo)號(hào)label指定的目標(biāo)地址去執(zhí)行指令;條件不成立,則程序?qū)㈨樞驁?zhí)行下一條指令n操作數(shù)label是采用相對(duì)尋址方式的短轉(zhuǎn)移標(biāo)號(hào)q表示Jcc指令后的那條指令的偏移地址,到目標(biāo)指令的偏移地址的地址位移q距當(dāng)前IP地址128127個(gè)單元的范圍之內(nèi)Jcc labelJcc label ;條件滿(mǎn)足,發(fā)生轉(zhuǎn)移:;條件滿(mǎn)足,發(fā)生轉(zhuǎn)移:IPIPIPIP8 8位位移位位移量量 ;條件
9、不滿(mǎn)足,順序執(zhí)行;條件不滿(mǎn)足,順序執(zhí)行的指令系統(tǒng)PPT課件13Jcc指令的分類(lèi)指令的分類(lèi)nJcc指令不影響標(biāo)志,但要利用標(biāo)志。n根據(jù)利用的標(biāo)志位不同,16條指令分成3種情況:1. 判斷單個(gè)標(biāo)志位狀態(tài) 2. 比較無(wú)符號(hào)數(shù)高低 3. 比較有符號(hào)數(shù)大小 的指令系統(tǒng)PPT課件14轉(zhuǎn)移條件轉(zhuǎn)移條件cc:?jiǎn)蝹€(gè)標(biāo)志狀態(tài):?jiǎn)蝹€(gè)標(biāo)志狀態(tài)JZ/JE ZF=1 Jump if Zero/EqualJNZ/JNEZF=0 Jump if Not Zero/Not EqualJSSF=1 Jump if SignJNSSF=0 Jump if Not SignJP/JPEPF=1 Jump if Parity/Pari
10、ty EvenJNP/JPOPF=0 Jump if Not Parity/Parity OddJOOF=1 Jump if OverflowJNOOF=0 Jump if Not OverflowJCCF=1 Jump if CarryJNCCF=0 Jump if Not Carry 采用多個(gè)助記符,只是為了方便記憶和使用采用多個(gè)助記符,只是為了方便記憶和使用的指令系統(tǒng)PPT課件15轉(zhuǎn)移條件轉(zhuǎn)移條件cc:兩數(shù)大小關(guān)系:兩數(shù)大小關(guān)系無(wú)符號(hào)數(shù)無(wú)符號(hào)數(shù)JB/JNAE CF=1Jump if Below/Not Above or EqualJNB/JAE CF=0Jump if Not Below
11、/Above or EqualJBE/JNA CF=1或或ZF=1Jump if Below/Not AboveJNBE/JA CF=0且且ZF=0Jump if Not Below or Equal/Above的指令系統(tǒng)PPT課件16 SF=0 SF=0 SF=1 SF=1 OF=0 OF=1 OF=0 OF=1 正,= 溢出,負(fù), 負(fù),=帶符號(hào)數(shù)帶符號(hào)數(shù)JL/JNGESFOFJump if Less/Not Greater or EqualJNL/JGESF=OFJump if Not Less/Greater or EqualJLE/JNGSFOF或或ZF=1Jump if Less o
12、r Equal/Not GreaterJNLE/JGSF=OF且且ZF=0Jump if Not Less or Equal/Greater的指令系統(tǒng)PPT課件17判斷單個(gè)標(biāo)志位狀態(tài)判斷單個(gè)標(biāo)志位狀態(tài)n這組指令單獨(dú)判斷這組指令單獨(dú)判斷5個(gè)狀態(tài)標(biāo)志之一個(gè)狀態(tài)標(biāo)志之一JZJZ/JEJE和和J JNZ/JNE:利用零標(biāo)志:利用零標(biāo)志ZF,判斷結(jié)果是否為零,判斷結(jié)果是否為零(或相等)(或相等)JS和和JNS:利用符號(hào)標(biāo)志:利用符號(hào)標(biāo)志SF,判斷結(jié)果是正是負(fù),判斷結(jié)果是正是負(fù)JO和和JNO:利用溢出標(biāo)志:利用溢出標(biāo)志OF,判斷結(jié)果是否產(chǎn)生溢出,判斷結(jié)果是否產(chǎn)生溢出JP/JPE和和JNP/JPO:利用奇偶
13、標(biāo)志:利用奇偶標(biāo)志PF,判斷結(jié)果中,判斷結(jié)果中“1”的個(gè)數(shù)是偶是奇的個(gè)數(shù)是偶是奇JC/JB/JNAE和和J JNC/JNB/JAE:利用進(jìn)位標(biāo)志:利用進(jìn)位標(biāo)志CF,判,判斷結(jié)果是否進(jìn)位或借位斷結(jié)果是否進(jìn)位或借位例題例題2.38例題例題2.39例題例題2.40例題例題2.41例題例題2.42的指令系統(tǒng)PPT課件18例2.38:JZ/JNZ指令test al,80htest al,80h;測(cè)試最高位;測(cè)試最高位jz next0jz next0;D7D70 0(ZFZF1 1),轉(zhuǎn)移),轉(zhuǎn)移mov ah,0ffhmov ah,0ffh;D7D71 1,順序執(zhí)行,順序執(zhí)行jmp donejmp don
14、e;無(wú)條件轉(zhuǎn)向;無(wú)條件轉(zhuǎn)向next0:next0:mov ah,0mov ah,0done:done:.test al,80htest al,80h;測(cè)試最高位;測(cè)試最高位jnz next1jnz next1;D7D71 1(ZFZF0 0),轉(zhuǎn)移),轉(zhuǎn)移mov ah,0mov ah,0;D7D70 0,順序執(zhí)行,順序執(zhí)行jmp donejmp done;無(wú)條件轉(zhuǎn)向;無(wú)條件轉(zhuǎn)向next1:next1:mov ah,0ffhmov ah,0ffhdone:done:.的指令系統(tǒng)PPT課件19例2.39:JS/JNS指令;計(jì)算計(jì)算|XY|(絕對(duì)值)(絕對(duì)值);X和和Y為存放于為存放于X單元和單元和
15、Y單元的單元的16位操作數(shù)位操作數(shù);結(jié)果存入;結(jié)果存入resultmov ax,Xmov ax,Xsub ax,Ysub ax,Yjns nonnegjns nonnegnegneg ax ax;negneg是求補(bǔ)指令是求補(bǔ)指令nonneg:nonneg: mov result,axmov result,ax的指令系統(tǒng)PPT課件20例2.40:JO/JNO指令;計(jì)算;計(jì)算XY;X和和Y為存放于為存放于X單元和單元和Y單元的單元的16位操作數(shù)位操作數(shù);若溢出,則轉(zhuǎn)移到;若溢出,則轉(zhuǎn)移到overflow處理處理mov ax,Xmov ax,Xsub ax,Ysub ax,Yjo overflowj
16、o overflow.;無(wú)溢出,結(jié)果正確;無(wú)溢出,結(jié)果正確overflow:overflow:.;有溢出處理;有溢出處理的指令系統(tǒng)PPT課件21例2.41:JP/JNP指令;設(shè)字符的;設(shè)字符的ASCII碼在碼在AL寄存器中寄存器中;將字符加上奇校驗(yàn)位;將字符加上奇校驗(yàn)位;在字符;在字符ASCII碼中為碼中為“1”的個(gè)數(shù)已為奇數(shù)時(shí)的個(gè)數(shù)已為奇數(shù)時(shí);則令其最高位為;則令其最高位為“0”;否則令最高位為;否則令最高位為“1”and al,7fhand al,7fh;最高位置;最高位置“0”0”,同時(shí)判斷,同時(shí)判斷“1”1”的的個(gè)數(shù)個(gè)數(shù)jnp nextjnp next;個(gè)數(shù)已為奇數(shù),則轉(zhuǎn)向;個(gè)數(shù)已為奇
17、數(shù),則轉(zhuǎn)向nextnextor al,80hor al,80h;否則,最高位置;否則,最高位置“1”1”next:next:.的指令系統(tǒng)PPT課件22例2.42:JC/JNC指令;記錄;記錄BX中中1的個(gè)數(shù)的個(gè)數(shù)xor al,alxor al,al;ALAL0 0,CFCF0 0again:again:test bx,0ffffh test bx,0ffffh ;等價(jià)于等價(jià)于 cmp bx,0cmp bx,0je nextje nextshl bx,1shl bx,1jnc againjnc againinc alinc aljmp againjmp againnext:next:.;ALAL
18、保存保存1 1的個(gè)數(shù)的個(gè)數(shù)另一種做法另一種做法的指令系統(tǒng)PPT課件23記錄BX中“1”的個(gè)數(shù)xor al,alxor al,al;ALAL0 0,CFCF0 0again:again:cmp bx,0cmp bx,0jz nextjz nextshl bx,1shl bx,1;也可使用;也可使用 shr bx,1shr bx,1adc al,0adc al,0jmp againjmp againnext:next:.;ALAL保存保存1 1的個(gè)數(shù)的個(gè)數(shù)的指令系統(tǒng)PPT課件24比較無(wú)符號(hào)數(shù)高低比較無(wú)符號(hào)數(shù)高低n無(wú)符號(hào)數(shù)的大小用高(Above)低(Below)表示n利用CF確定高低、利用ZF標(biāo)志確
19、定相等(Equal)n兩數(shù)的高低分成4種關(guān)系: 低于(不高于等于):JB(JNAE) 不低于(高于等于):JNB(JAE) 低于等于(不高于):JBE(JNA) 不低于等于(高于):JNBE(JA )的指令系統(tǒng)PPT課件25例2.43a:比較無(wú)符號(hào)數(shù)cmp ax,bxcmp ax,bx;比較;比較axax和和bxbxjnb nextjnb next;若;若axbxaxbx,轉(zhuǎn)移,轉(zhuǎn)移xchgxchg ax,bx ax,bx ;若;若axaxbxbx,交換,交換next:next:.結(jié)果:結(jié)果:AX保存較大的保存較大的無(wú)符號(hào)數(shù)無(wú)符號(hào)數(shù)的指令系統(tǒng)PPT課件26比較有符號(hào)數(shù)大小比較有符號(hào)數(shù)大小n有符
20、號(hào)數(shù)的大(Greater)?。↙ess)需要組合OF、SF標(biāo)志,并利用ZF標(biāo)志確定相等(Equal)n兩數(shù)的大小分成4種關(guān)系: 小于(不大于等于):JL(JNGE) 不小于(大于等于):JNL(JGE) 小于等于(不大于):JLE(JNG) 不小于等于(大于):JNLE(JG )的指令系統(tǒng)PPT課件27例2.43b:比較有符號(hào)數(shù)cmp ax,bxcmp ax,bx;比較;比較axax和和bxbxjnl nextjnl next;若;若axbxaxbx,轉(zhuǎn)移,轉(zhuǎn)移xchgxchg ax,bx ax,bx ;若;若axaxbxbx,交換,交換next:next:.結(jié)果:結(jié)果:AX保存較大的保存較大
21、的有符號(hào)數(shù)有符號(hào)數(shù)的指令系統(tǒng)PPT課件282.4.3 循環(huán)指令循環(huán)指令(loop)n循環(huán)指令默認(rèn)利用循環(huán)指令默認(rèn)利用CX計(jì)數(shù)器計(jì)數(shù)器nlabel操作數(shù)采用相對(duì)操作數(shù)采用相對(duì)短轉(zhuǎn)移短轉(zhuǎn)移尋址方式尋址方式LOOP labelLOOP label;CXCXCXCX1 1, ;CX0CX0,循環(huán)到標(biāo)號(hào),循環(huán)到標(biāo)號(hào)labellabelLOOPZ labelLOOPZ label;CXCXCXCX1 1, ;CX0CX0且且ZFZF1 1,循環(huán)到標(biāo)號(hào),循環(huán)到標(biāo)號(hào)labellabelLOOPNZ labelLOOPNZ label ;CXCXCXCX1 1, ;CX0CX0且且ZFZF0 0,循環(huán)到標(biāo)號(hào),循
22、環(huán)到標(biāo)號(hào)labellabelJCXZ labelJCXZ label;CXCX0 0,轉(zhuǎn)移到標(biāo)號(hào),轉(zhuǎn)移到標(biāo)號(hào)labellabel的指令系統(tǒng)PPT課件29例2.44:記錄空格個(gè)數(shù)mov cx,countmov cx,count;設(shè)置循環(huán)次數(shù);設(shè)置循環(huán)次數(shù), ,即字符數(shù)即字符數(shù)mov si,offset stringmov si,offset stringxor bx,bxxor bx,bx;bxbx0 0,記錄空格數(shù),記錄空格數(shù)jcxz done jcxz done ;如果長(zhǎng)度為;如果長(zhǎng)度為0 0,退出,退出mov al,20hmov al,20hagain:again:cmp al,es:si
23、cmp al,es:sijnz nextjnz next;ZFZF0 0非空格,轉(zhuǎn)移非空格,轉(zhuǎn)移inc bxinc bx;ZF=1ZF=1是空格,個(gè)數(shù)加是空格,個(gè)數(shù)加1 1next:next:inc siinc siloop againloop again;字符個(gè)數(shù)減;字符個(gè)數(shù)減1 1,不為,不為0 0繼續(xù)循環(huán)繼續(xù)循環(huán)dec cxjnz againcmp cx,0jz done的指令系統(tǒng)PPT課件302.4.4 子程序指令子程序指令n子程序是完成特定功能的一段程序n當(dāng)主程序(調(diào)用程序)需要執(zhí)行這個(gè)功能時(shí),采用CALL調(diào)用指令轉(zhuǎn)移到該子程序的起始處執(zhí)行n當(dāng)運(yùn)行完子程序功能后,采用RET返回指令回
24、到主程序繼續(xù)執(zhí)行的指令系統(tǒng)PPT課件31主程序與子程序主程序與子程序CALL label主程序主程序RET子程序子程序回到回到CALL指令后的指令處指令后的指令處返回地址返回地址的指令系統(tǒng)PPT課件32子程序調(diào)用指令子程序調(diào)用指令nCALL指令分成4種類(lèi)型(類(lèi)似JMP)CALL label;段內(nèi)調(diào)用、相對(duì)尋址CALL r16/m16 ;段內(nèi)調(diào)用、間接尋址CALL far ptr label;段間調(diào)用、直接尋址CALL far ptr mem;段間調(diào)用、間接尋址nCALL指令需要保存返回地址:q段內(nèi)調(diào)用段內(nèi)調(diào)用入棧偏移地址IPSPSP2,SS:SPIPq段間調(diào)用段間調(diào)用入棧偏移地址IP和段地址C
25、SSPSP2,SS:SPIPSPSP2,SS:SPCS的指令系統(tǒng)PPT課件33子程序返回指令子程序返回指令n根據(jù)段內(nèi)和段間、有無(wú)參數(shù),分成4種類(lèi)型RET;無(wú)參數(shù)段內(nèi)返回RET i16;有參數(shù)段內(nèi)返回RET;無(wú)參數(shù)段間返回RET i16;有參數(shù)段間返回n需要彈出CALL指令壓入堆棧的返回地址q段內(nèi)返回段內(nèi)返回出棧偏移地址IPIPSS:SP, SPSP2q段間返回段間返回出棧偏移地址IP和段地址CSIPSS:SP,SPSP2CSSS:SP,SPSP2i16參數(shù)的作用參數(shù)的作用的指令系統(tǒng)PPT課件34返回指令返回指令RET的參數(shù)的參數(shù)RET i16 ;有參數(shù)返回nRET指令可以帶有一個(gè)立即數(shù)i16,
26、則堆棧指針SP將增加,即SPSP+i16n這個(gè)特點(diǎn)使得程序可以方便地廢除若干執(zhí)行CALL指令以前入棧的參數(shù)的指令系統(tǒng)PPT課件35例2.45:子程序;主程序主程序mov al,0fhmov al,0fh;提供參數(shù);提供參數(shù)ALALcall htoasccall htoasc;調(diào)用子程序;調(diào)用子程序.;子程序:;子程序:將將ALAL低低4 4位的一位位的一位1616進(jìn)制數(shù)進(jìn)制數(shù)轉(zhuǎn)換轉(zhuǎn)換成成ASCIIASCII碼碼htoasc:htoasc: and al,0fhand al,0fh;只??;只取alal的低的低4 4位位or al,30hor al,30h;alal高高4 4位變成位變成3 3cm
27、p al,39hcmp al,39h;是;是0 09 9,還是,還是0Ah0Ah0Fh0Fhjbe htoendjbe htoendadd al,7add al,7;是;是0Ah0Ah0Fh0Fh,加上,加上7 7htoend:htoend: retret;子程序返回;子程序返回的指令系統(tǒng)PPT課件362.4.5 中斷指令中斷指令n中斷(Interrupt )是又一種改變程序執(zhí)行順序的方法n中斷具有多種中斷類(lèi)型n中斷的指令有3條:INT i8 IRET INTOn本節(jié)主要掌握類(lèi)似子程序調(diào)用指令的中斷調(diào)用指令I(lǐng)NT i8,進(jìn)而學(xué)習(xí)使用DOS功能調(diào)用的指令系統(tǒng)PPT課件37中斷的過(guò)程中斷的過(guò)程主程
28、序主程序IRET中斷服務(wù)程序中斷服務(wù)程序斷點(diǎn)斷點(diǎn)中斷請(qǐng)求中斷請(qǐng)求中斷請(qǐng)求可以來(lái)自處理器外部的中斷源,中斷請(qǐng)求可以來(lái)自處理器外部的中斷源,也可以由處理器執(zhí)行指令引起:也可以由處理器執(zhí)行指令引起:例如執(zhí)行例如執(zhí)行INT i8指令。指令。的指令系統(tǒng)PPT課件388086的外部中斷的外部中斷n8086可以管理256個(gè)中斷n各種中斷用一個(gè)向量編號(hào)來(lái)區(qū)別n主要分成外部中斷和內(nèi)部中斷n外部中斷來(lái)自CPU之外的原因引起的中斷,又可以分成q可屏蔽中斷:可由CPU的中斷允許標(biāo)志IF控制q非屏蔽中斷:不受CPU的中斷允許標(biāo)志IF控制的指令系統(tǒng)PPT課件398086的內(nèi)部中斷的內(nèi)部中斷n內(nèi)部中斷CPU內(nèi)部執(zhí)行程序引起
29、的中斷,又可以分成:q除法錯(cuò)中斷:執(zhí)行除法指令,結(jié)果溢出產(chǎn)生的 0 號(hào)中斷q指令中斷:執(zhí)行中斷調(diào)用指令I(lǐng)NT i8產(chǎn)生的 i8 號(hào)中斷q斷點(diǎn)中斷:用于斷點(diǎn)調(diào)試(INT 3)的 3 號(hào)中斷q溢出中斷:執(zhí)行溢出中斷指令,OF1產(chǎn)生的 4 號(hào)中斷q單步中斷:TF1在每條指令執(zhí)行后產(chǎn)生的 1 號(hào)中斷的指令系統(tǒng)PPT課件40中斷指令中斷指令I(lǐng)NTINT i8INT i8;中斷調(diào)用指令:產(chǎn)生i8號(hào)中斷IRETIRET;中斷返回指令:實(shí)現(xiàn)中斷返回INTOINTO;溢出中斷指令:;若溢出標(biāo)志OF=1,產(chǎn)生4號(hào)中斷;否則順序執(zhí)行的指令系統(tǒng)PPT課件412.4.6 系統(tǒng)功能調(diào)用系統(tǒng)功能調(diào)用n21H號(hào)中斷是DOS提
30、供給用戶(hù)的用于調(diào)用系統(tǒng)功能的中斷,它有近百個(gè)功能供用戶(hù)選擇使用,主要包括設(shè)備管理、目錄管理和文件管理三個(gè)方面的功能nROM-BIOS也以中斷服務(wù)程序的形式,向程序員提供系統(tǒng)的基本輸入輸出程序n匯編語(yǔ)言程序設(shè)計(jì)需要采用系統(tǒng)的各種功能程序n充分利用操作系統(tǒng)提供的資源是程序設(shè)計(jì)的一個(gè)重要方面,需要掌握的指令系統(tǒng)PPT課件42用戶(hù)程序用戶(hù)程序DOS系統(tǒng)系統(tǒng)功能調(diào)用功能調(diào)用BIOS中斷調(diào)用中斷調(diào)用硬件硬件/外部設(shè)備外部設(shè)備裸機(jī)裸機(jī)匯編語(yǔ)言程序的指令系統(tǒng)PPT課件43功能調(diào)用的步驟功能調(diào)用的步驟通常按照如下4個(gè)步驟進(jìn)行:n 在AHAH寄存器中設(shè)置系統(tǒng)功能調(diào)用號(hào)n 在指定寄存器中設(shè)置入口參數(shù)n 執(zhí)行指令I(lǐng)N
31、T 21HINT 21H(或ROM-BIOS的中斷向量號(hào))實(shí)現(xiàn)中斷服務(wù)程序的功能調(diào)用n 根據(jù)出口參數(shù)分析功能調(diào)用執(zhí)行情況的指令系統(tǒng)PPT課件44輸入輸出類(lèi)功能調(diào)用輸入輸出類(lèi)功能調(diào)用n向顯示器輸出字符 字符的輸出 字符串的輸出n從鍵盤(pán)輸入數(shù)據(jù) 字符的輸入 字符串的輸入 按鍵的判斷的指令系統(tǒng)PPT課件45字符輸出的功能調(diào)用字符輸出的功能調(diào)用nDOS功能調(diào)用INT 21Hq功能號(hào):AH02Hq入口參數(shù):DL字符的ASCII碼q功能:在顯示器當(dāng)前光標(biāo)位置顯示給定的字符,光標(biāo)右移一個(gè)字符位置。如按Ctrl-Break或Ctrl-C則退出的指令系統(tǒng)PPT課件46例2.46:顯示問(wèn)號(hào);在當(dāng)前顯示器光標(biāo)位置顯
32、示一個(gè)問(wèn)號(hào);在當(dāng)前顯示器光標(biāo)位置顯示一個(gè)問(wèn)號(hào)mov ah,02hmov ah,02h;設(shè)置功能號(hào):;設(shè)置功能號(hào):ah02hah02hmov dl,?mov dl,?;提供入口參數(shù):;提供入口參數(shù):dl?dl?int 21hint 21h;DOSDOS功能調(diào)用:顯示功能調(diào)用:顯示 進(jìn)行字符輸出時(shí),當(dāng)輸出響鈴字符(進(jìn)行字符輸出時(shí),當(dāng)輸出響鈴字符(07H)以及退格(以及退格(08H)、回車(chē)()、回車(chē)(0DH)和換行)和換行(0AH)字符時(shí),該功能調(diào)用可以自動(dòng)識(shí)別并)字符時(shí),該功能調(diào)用可以自動(dòng)識(shí)別并能進(jìn)行相應(yīng)處理能進(jìn)行相應(yīng)處理的指令系統(tǒng)PPT課件47字符輸出的功能調(diào)用字符輸出的功能調(diào)用n顯示器功能調(diào)用
33、INT 10Hq功能號(hào): AH0EHq入口參數(shù):AL字符的ASCII碼 BL字符的顏色值(圖形方式) BH頁(yè)號(hào)(字符方式) 通常使BX0q功能:將字符按原屬性在光標(biāo)處顯示,光標(biāo)自動(dòng)移到下一個(gè)字符位置的指令系統(tǒng)PPT課件48字符串輸出的功能調(diào)用字符串輸出的功能調(diào)用nDOS功能調(diào)用INT 21Hq功能號(hào):AH09Hq入口參數(shù): DS:DX欲顯示字符串在主存中的首地址 字符串應(yīng)以$(24H)結(jié)束q功能:在顯示器輸出指定的字符串n可以輸出回車(chē)(0DH)和換行(0AH)字符產(chǎn)生回車(chē)和換行的作用的指令系統(tǒng)PPT課件49例2.47:顯示字符串string db Hello,Everybody !,0dh,0
34、ah,$string db Hello,Everybody !,0dh,0ah,$;在數(shù)據(jù)段定義要顯示的字符串;在數(shù)據(jù)段定義要顯示的字符串.mov ah,09hmov ah,09h;設(shè)置功能號(hào):;設(shè)置功能號(hào):ah09hah09hmov dx,offset stringmov dx,offset string;提供入口參數(shù):;提供入口參數(shù):dxdx字符串的偏移地址字符串的偏移地址int 21hint 21h;DOSDOS功能調(diào)用:顯示功能調(diào)用:顯示的指令系統(tǒng)PPT課件50字符輸入的功能調(diào)用字符輸入的功能調(diào)用nDOS功能調(diào)用INT 21Hq功能號(hào):AH01Hq出口參數(shù):AL字符的ASCII碼q功能
35、:獲得按鍵的ASCII代碼值n調(diào)用此功能時(shí),若無(wú)鍵按下,則會(huì)一直等待,直到按鍵后才讀取該鍵值的指令系統(tǒng)PPT課件51例2.48:判斷按鍵getkey:getkey:mov ah,01hmov ah,01h;功能號(hào):;功能號(hào):ah01hah01hint 21hint 21h;功能調(diào)用;功能調(diào)用cmp al,Ycmp al,Y;處理出口參數(shù);處理出口參數(shù)alalje yeskeyje yeskey;是;是“Y”Y”cmp al,Ncmp al,Nje nokeyje nokey;是;是“N”N”jne getkeyjne getkey.yeskey:yeskey:.nokey:nokey:.的指令
36、系統(tǒng)PPT課件52字符輸入的功能調(diào)用字符輸入的功能調(diào)用n鍵盤(pán)功能調(diào)用INT 16Hq功能號(hào):AH0q出口參數(shù):AX鍵值代碼對(duì)于標(biāo)準(zhǔn)ASCII碼按鍵:ALASCII碼,AH掃描碼;對(duì)于擴(kuò)展按鍵:AL00H,AH鍵擴(kuò)展碼;對(duì)于alt小鍵盤(pán)數(shù)字按鍵:ALASCII碼,AH00Hn此功能類(lèi)同DOS功能01H,會(huì)一直等待按鍵的指令系統(tǒng)PPT課件53例2.49:字符輸入輸出mov ah,0mov ah,0;鍵盤(pán)功能調(diào)用(;鍵盤(pán)功能調(diào)用(int 16hint 16h)int 16hint 16h;alal按鍵的按鍵的ASCIIASCII碼碼mov bx,0mov bx,0;顯示功能調(diào)用(;顯示功能調(diào)用(int 10hint 10h)mov ah,0ehmov ah,0ehint 10hint 10h;顯示;顯示的指令系統(tǒng)PPT課件54字
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中班主任定期評(píng)估工作計(jì)劃
- 汽車(chē)維修行業(yè)師徒結(jié)對(duì)實(shí)習(xí)計(jì)劃
- 城市道路綠化施工技術(shù)措施
- 2024屆江蘇省常州市教育會(huì)業(yè)水平監(jiān)測(cè)中考二模數(shù)學(xué)試題含解析
- 英語(yǔ)教育行業(yè)教師發(fā)展研究計(jì)劃
- 2024屆江蘇省蘇州工業(yè)園區(qū)七校聯(lián)考中考數(shù)學(xué)考試模擬沖刺卷含解析
- 麥當(dāng)勞中國(guó)內(nèi)部培訓(xùn)體系
- 睪丸常見(jiàn)腫瘤超聲診斷要點(diǎn)
- 小學(xué)一年級(jí)第一學(xué)期環(huán)境美化計(jì)劃
- 外語(yǔ)學(xué)習(xí)在線教學(xué)計(jì)劃
- 2025年商法知識(shí)競(jìng)賽考試試卷及答案
- 2025年山東省臨沂市平邑縣中考一模語(yǔ)文試題(含答案)
- 2025年電子信息工程專(zhuān)業(yè)考試試題及答案
- 【威海】2025年山東省威海技師學(xué)院公開(kāi)招聘工作人員29人筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 2025年第六屆全國(guó)國(guó)家版圖知識(shí)競(jìng)賽題庫(kù)及答案
- 機(jī)械租賃投標(biāo)服務(wù)方案
- 2025年北京市朝陽(yáng)區(qū)九年級(jí)初三一模英語(yǔ)試卷(含答案)
- Unit1-Unit2重點(diǎn)短語(yǔ)(背誦版+默寫(xiě)版)外研版英語(yǔ)新七年級(jí)下冊(cè)
- 《抗休克藥物治療》課件
- 《2024 3572-T-424 重大活動(dòng)食品安全保障規(guī)范 第 3 部分:供餐》知識(shí)培訓(xùn)
- 2025年中考語(yǔ)文總復(fù)習(xí):八年級(jí)下冊(cè)教材字詞打卡練
評(píng)論
0/150
提交評(píng)論