匯編語(yǔ)言指令系統(tǒng)_第1頁(yè)
匯編語(yǔ)言指令系統(tǒng)_第2頁(yè)
匯編語(yǔ)言指令系統(tǒng)_第3頁(yè)
匯編語(yǔ)言指令系統(tǒng)_第4頁(yè)
匯編語(yǔ)言指令系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、匯編語(yǔ)言-指令系統(tǒng)整理總結(jié)-轉(zhuǎn)貼2007-05-1722:36對(duì)于計(jì)算機(jī)軟件專業(yè)的學(xué)生,適當(dāng)?shù)膶W(xué)習(xí)一些匯編語(yǔ)言知識(shí),我認(rèn)為很重要,有助于你對(duì)于計(jì)算機(jī)底層 工作的了解,幫助你更好的理解計(jì)算機(jī)高級(jí)語(yǔ)言,匯編原理,也對(duì)于學(xué)習(xí)操作系統(tǒng)很有幫助.近來(lái)自己在學(xué)匯編語(yǔ)言. 整理總結(jié)了常用的一些指令,認(rèn)為對(duì)于學(xué)習(xí)匯編的龍友會(huì)有一些幫助 以下內(nèi)容均為個(gè)人整理.錯(cuò)誤不當(dāng)之處還望大家指出更正.謝謝.每條指令 均按照1、指令的匯編格式 2、指令的基本功能 3、指令的尋址方式 4、指令對(duì)標(biāo)志位的影響 5、指令的特殊 要求這 5條內(nèi)容的形式來(lái)對(duì)每條指令進(jìn)行歸納總結(jié).數(shù)據(jù)傳送指令一、通用數(shù)據(jù)傳送指令1、傳送指令 MOV (

2、move指令的匯編格式:MOVDST,SRC指令的基本功能:(DST<-(SRC將原操作數(shù)(字節(jié)或字傳送到目的地址。指令支持的尋址方式:目的操作數(shù)和源操作數(shù)不能同時(shí)用存儲(chǔ)器尋址方式, 這個(gè)限制適用于所有指令。 指令的執(zhí)行對(duì)標(biāo)志位的影響:不影響標(biāo)志位。指令的特殊要求:目的操作數(shù) DST 和源操作數(shù) SRC 不允許同時(shí)為段寄存器;目的操作數(shù) DST 不能是 CS,也不能用立即數(shù)方式。2、進(jìn)棧指令 PUSH (pushonto the stack出棧指令 POP (popfrom the stack指令的匯編格式:PUSHSRC ;POP DST指令的基本功能:PUSH指令在程序中常用來(lái)暫存某

3、些數(shù)據(jù),而 POP 指令又可將這些數(shù)據(jù)恢復(fù)。 PUSH SRC (SP<-(SP-2;(SP<-(SRCPOP DST (DST<-(SP;(SP<-(SP指令支持的尋址方式:push和 pop 指令不能不能使用立即數(shù)尋址方式。指令對(duì)標(biāo)志位的影響:PUSH和 POP 指令都不影響標(biāo)志位。指令的特殊要求:PUSH 和 POP 指令只能是字操作, 因此, 存取字?jǐn)?shù)據(jù)后, SP 的修改必須是+2或者 -2; POP 指令的 DST 不允許是 CS 寄存器;3、交換指令 XCHG (exchange指令的匯編格式:XCHGOPR1,OPR2指令的基本功能:(OPR1<-&

4、gt;(OPR2指令支持的尋址方式:一個(gè)操作數(shù)必須在寄存器中,另一個(gè)操作數(shù)可以在寄存器或存儲(chǔ)器中。指令對(duì)標(biāo)志位的影戲:不影響標(biāo)志位。指令的特殊要求:不允許使用段寄存器。二、累加器專用傳送指令4、輸入指令 IN (input輸出指令 OUT (output指令的匯編格式:INac,port port<=0FFHIN ac,DX port>0FFHOUT port,ac port<=0FFHOUT DX,ac port>0FFH指令的基本功能:對(duì) 8086及其后繼機(jī)型的微處理機(jī),所有 I/O端口與 CPU 之間的通信都由輸入輸出 指令 IN 和 OUT 來(lái)完成。IN 指令將

5、信息從 I/O輸入到 CPU,OUT 指令將信息從 CPU 輸出到 I/O端口, 因此,IN 和 OUT 指令都要指出 I/O端口地址。IN ac,port port<=0FFH(AL<-(port傳送字節(jié) 或 (AX<-(port+1,port傳送字IN ac,DX port>0FFH(AL<-(DX傳送字節(jié) 或 (AX<-(DX+1,(DX傳送字OUT port,ac port<=0FFH(port<-(AL傳送字節(jié) 或 (port+1,port<-(AX傳送字OUT DX,ac port>0FFH(DX<-(AL傳送字節(jié)

6、或 (DX+1,(DX<-(AX傳送字指令的特殊要求:只限于在 AL 或 AX 與 I/O端口之間傳送信息。傳送 16位信息用 AX,傳送 8位信息用 AL,這取決于外設(shè)端口的寬度。5、換碼指令 XLAT (translate指令的匯編格式:XLATopr 或 XLAT指令的基本功能:這條指令根據(jù) AL 寄存器提供的位移量,將 BX 指使的字節(jié)表格中的代碼換存在 AL 中。(AL<-(DS*16+(BX+(AL指令對(duì)標(biāo)志位的影響:不影響標(biāo)志位。指令的特殊要求:所建字節(jié)表格的長(zhǎng)度不能超過(guò) 256字節(jié),因?yàn)榇娣盼灰屏康氖?8位寄存器 AL。 opr 為表格的首地址,因?yàn)?opr 所表示

7、的偏移地址已存入 BX 寄存器,所以 opr 在換碼指令中可有可 無(wú),有則提高程序的可讀性。三、地址傳送指令6、有效地址傳送器 LEA (loadeffective address指令的匯編格式:LEAreg,src指令的基本功能:LEA指令把源操作數(shù)的有效地址送到指定的寄存器,這個(gè)有效地址是由 src 選定的 一種存儲(chǔ)器尋址方式確定的。指令支持的尋址方式:各種存儲(chǔ)器尋址方式。指令對(duì)標(biāo)志位的影響:不影響標(biāo)志位。指令的特出要求:指令中 reg 不能是段寄存器;7、指針?biāo)图拇嫫骱?DS LDS (loadDS with point指針?biāo)图拇嫫骱?ES LES (loadES with point指

8、令的匯編格式:LDSreg,srcLES reg,src指令的基本功能:LDS和 LES 指令把確定內(nèi)存單元位置的偏移地址送寄存器,段地址 DS 或 ES。這個(gè) 偏移地址和段地址(也稱地址指針是由 src 指定的兩個(gè)相繼字單元提供的。LDS reg,src (reg<-(src(DS<-(src+2LES reg,src (reg<-(src(ES<-(src+2指令支持的尋址方式:src必須為存儲(chǔ)器尋址方式指令對(duì)標(biāo)志位的影響:不影響標(biāo)志位。指令的特殊要求:指令中 REG 不能是段寄存器;四、標(biāo)志寄存器傳送指令8、標(biāo)志寄存器的低字節(jié)送 AH LAHF (loadAH w

9、ith FLAGS指令的匯編格式:LAHF指令的基本功能:(AH<-(FLAGS0-7指令對(duì)標(biāo)志位的影響:不影響標(biāo)志位9、AH 送標(biāo)志寄存器低字節(jié) SAHF(storeAH into FLAGS指令的匯編格式:SAHF指令的基本功能:(FLAGS0-7<-(AH指令對(duì)標(biāo)志位的影響:由裝入值來(lái)確定標(biāo)志位的值。10、標(biāo)志進(jìn)棧 PUSHF (pushthe flags指令的匯編格式:PUSHF指令的基本功能:(SP<-(SP-2(SP+1,(SP<-(FLAGS0-1511、標(biāo)志出棧 POPF (popthe FLAGES指令的匯編格式:POPF指令的基本功能:(FLAGS0

10、-15<-(SP+1,(SP(SP<-(SP+2指令對(duì)標(biāo)志位的影響:由裝入值來(lái)確定標(biāo)志位的值。算術(shù)指令一、加法指令 12、加法指令 ADD (addition指令的匯編格式:adddst,src指令的基本功能:(dst<-(src+(dst指令支持的尋址方式:他們兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器尋址。即為除源操作數(shù)為立即數(shù)的情況外, 源操作數(shù)和目地操作數(shù)必須有一個(gè)寄存器尋址方式。指令對(duì)標(biāo)志位的影響:SF=1加法結(jié)果為負(fù)數(shù)(符號(hào)位為 1SF=0加法結(jié)果為正數(shù)(符號(hào)位為 0ZF=1加法結(jié)果為零ZF=0加法結(jié)果不為零CF=1最高有效位向高位有進(jìn)位CF=0最高有效位向高位無(wú)進(jìn)位OF=1兩個(gè)

11、同符號(hào)數(shù)相加(正數(shù)+正數(shù) 或 負(fù)數(shù)+負(fù)數(shù),結(jié)果符號(hào)與其相反。OF=0兩個(gè)不同符號(hào)數(shù)相加,或同符號(hào)數(shù)相加,結(jié)果符號(hào)與其相同。13、帶進(jìn)為加法指令 ADC (addwith carry指令的匯編格式:ADDdst,src指令的基本功能:(dst<-(src+(dst+CF指令支持的尋址方式:他們兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器尋址。即為除源操作數(shù)為立即數(shù)的情況外, 源操作數(shù)和目地操作數(shù)必須有一個(gè)寄存器尋址方式。指令對(duì)標(biāo)志位的影響:SF=1加法結(jié)果為負(fù)數(shù)SF=0加法結(jié)果為正數(shù)ZF=1加法結(jié)果為零ZF=0加法結(jié)果不為零CF=1最高有效位向高位有進(jìn)位CF=0最低有效位相高位無(wú)進(jìn)位OF=1兩個(gè)同符號(hào)數(shù)相加

12、,結(jié)果符號(hào)與其相反,OF=0兩個(gè)同符號(hào)數(shù)相加,或同符號(hào)相加,結(jié)果符號(hào)與其相同14、加 1指令 INC (increament指令的匯編格式:INCopr指令的基本功能:(opr<-(opr指令支持的尋址方式 可以使用除立即數(shù)方式外的任何尋址方式指令對(duì)標(biāo)志位的影響:SF=1加法結(jié)果為負(fù)數(shù)SF=0加法結(jié)果為正數(shù)ZF=1加法結(jié)果為零ZF=0加法結(jié)果不為零OF=1兩個(gè)同符號(hào)數(shù)相加,結(jié)果符號(hào)與其相反,OF=0兩個(gè)同符號(hào)數(shù)相加,或同符號(hào)相加,結(jié)果符號(hào)與其相同。二、減法指令15、減法指令 SUB (subtract指令的匯編格式:SUBdst,src指令的基本功能:(dst<-(dst-(src

13、指令支持的尋址方式:他們兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器尋址。即為除源操作數(shù)為立即數(shù)的情況外, 源操作數(shù)和目地操作數(shù)必須有一個(gè)寄存器尋址方式。指令對(duì)標(biāo)志位的影響:SF=1減法結(jié)果為負(fù)數(shù)(符號(hào)位為 1ZF=1減法結(jié)果為零ZF=0減法結(jié)果不為零CF=1二進(jìn)制減法運(yùn)算中最高有效位向高位有借位(被減數(shù)小于減數(shù),不夠減的情況CF=0二進(jìn)制減法運(yùn)算中最高有效為向高位無(wú)借位(被減數(shù)=減數(shù),夠減的情況OF=1兩數(shù)符號(hào)相反(正數(shù)-負(fù)數(shù),或負(fù)數(shù)-正數(shù),而結(jié)果符號(hào)與減數(shù)相同。OF=0同符號(hào)數(shù)相減時(shí),或不同符號(hào)數(shù)相減,其結(jié)果符號(hào)與減數(shù)不同。16、帶借位減法指令 SBB (subtractwith borrow指令的匯編格式

14、:SBBdst,src指令的基本功能:(dst<-(dst-(src-CF指令支持的尋址方式:他們兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器尋址。即為除源操作數(shù)為立即數(shù)的情況外, 源操作數(shù)和目地操作數(shù)必須有一個(gè)寄存器尋址方式。指令對(duì)標(biāo)志位的影響:SF=1減法結(jié)果為負(fù)數(shù)(符號(hào)位為 1SF=0減法結(jié)果為正數(shù)(符號(hào)位為 0ZF=1減法結(jié)果為零ZF=0減法結(jié)果不為零CF=1二進(jìn)制減法運(yùn)算中最高有效位向高位有借位(被減數(shù)小于減數(shù),不夠減的情況CF=0二進(jìn)制減法運(yùn)算中最高有效為向高位無(wú)借位(被減數(shù)=減數(shù),夠減的情況OF=1兩數(shù)符號(hào)相反(正數(shù)-負(fù)數(shù),或負(fù)數(shù)-正數(shù),而結(jié)果符號(hào)與減數(shù)相同。OF=0同符號(hào)數(shù)相減時(shí),或不同符

15、號(hào)數(shù)相減,其結(jié)果符號(hào)與減數(shù)不同。17、減 1指令 DEC (decrement指令的匯編格式:DECopr指令的基本功能:(opr<-(opr-1指令支持的尋址方式:可以使用除立即數(shù)方式外的任何尋址方式。指令對(duì)標(biāo)志位的影響:SF=1減法結(jié)果為負(fù)數(shù)(符號(hào)位為 1SF=0減法結(jié)果為正數(shù)(符號(hào)位為 0ZF=1減法結(jié)果為零ZF=0減法結(jié)果不為零OF=1兩數(shù)符號(hào)相反(正數(shù)-負(fù)數(shù),或負(fù)數(shù)-正數(shù),而結(jié)果符號(hào)與減數(shù)相同。OF=0同符號(hào)數(shù)相減時(shí),或不同符號(hào)數(shù)相減,其結(jié)果符號(hào)與減數(shù)不同。18、比較指令 CMP (compare指令的匯編格式:CMPopr1,opr2指令的基本功能:(opr1-(opr2,根

16、據(jù)相減結(jié)果設(shè)置條件碼,但不回送結(jié)果。指令支持的尋址方式:他們兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器尋址。即為除源操作數(shù)為立即數(shù)的情況外, 源操作數(shù)和目地操作數(shù)必須有一個(gè)寄存器尋址方式。指令對(duì)標(biāo)志位的影響:SF=1減法結(jié)果為負(fù)數(shù)(符號(hào)位為 1SF=0減法結(jié)果為正數(shù)(符號(hào)位為 0ZF=1減法結(jié)果為零ZF=0減法結(jié)果不為零CF=1二進(jìn)制減法運(yùn)算中最高有效位向高位有借位(被減數(shù)小于減數(shù),不夠減的情況CF=0二進(jìn)制減法運(yùn)算中最高有效為向高位無(wú)借位(被減數(shù)=減數(shù),夠減的情況OF=1兩數(shù)符號(hào)相反(正數(shù)-負(fù)數(shù),或負(fù)數(shù)-正數(shù),而結(jié)果符號(hào)與減數(shù)相同。OF=0同符號(hào)數(shù)相減時(shí),或不同符號(hào)數(shù)相減,其結(jié)果符號(hào)與減數(shù)不同。19、求補(bǔ)指

17、令 NEG (negate指令的匯編格式:NEGopr指令的基本功能:(opr<-(opr指令支持的尋址方式:可以使用除立即數(shù)方式外的任何尋址方式。指令對(duì)標(biāo)志位的影響:CF=1不為 0的操作數(shù)求補(bǔ)時(shí)CF=0為 0的操作數(shù)求補(bǔ)時(shí)OF=0當(dāng)求補(bǔ)運(yùn)算的操作數(shù)不為-128(字節(jié)或-32768(字時(shí)三、乘法指令20、無(wú)符號(hào)乘法指令 NUL (unsignedmultiple有符號(hào)乘法指令 IMUL(signedmuliple指令的匯編格式:NULsrcIMUL src指令的基本功能:(AX<-(AL*(src(DX,AX<-(AX*(src指令支持的尋址方式:src可以使用除立即數(shù)方式

18、以外的任一種尋址方式。指令對(duì)標(biāo)志位的影響:乘法指令只影響標(biāo)志位 CF 和 OF,其他條件碼位無(wú)定義。MUL 指令的條件碼設(shè)置為:CF OF=00乘積的高一半為 0(字節(jié)操作的(AH或字操作的(DXCF OF=11乘積的高一半不為 0IMUL 指令的條件碼設(shè)置為:CF OF=00乘積的高一半為低一半的符號(hào)擴(kuò)展.CF OF=11其他情況指令的特殊要求:MUL和 IMUL 指令的區(qū)別僅在于操作數(shù)是無(wú)符號(hào)還是帶符號(hào)數(shù),它們的共同點(diǎn)是, 指令中只給出源操作數(shù) src, 目的操作數(shù)是隱含的, 它只能是累加器 (字運(yùn)算為 AX, 字節(jié)運(yùn)算為 AL 。 隱含的乘積寄存器是 AX 或 DX(高位和 AX(低位。

19、四、符號(hào)擴(kuò)展指令21、節(jié)擴(kuò)展為字 CBW (convertbyte to word指令的匯編格式:CBW指令的基本功能:(AH=00H當(dāng)(AL的最高有效位為 0時(shí)(AH=FFH當(dāng)(AL的最高有效位為 1時(shí)指令對(duì)標(biāo)志位的影響:不影響標(biāo)志位指令的特殊要求:這是條無(wú)操作數(shù)的指令, 進(jìn)行符號(hào)擴(kuò)展的操作數(shù)必須存放在 AL 寄存器或 AX 寄存器 中。22、字?jǐn)U展為雙字 CWD (convertword to double word指令的匯編格式:CWD指令的基本功能:(DX=0000H當(dāng)(AX的最高有效位為 0時(shí)(DX=FFFFH當(dāng)(AX的最高有效位為 1時(shí)指令對(duì)標(biāo)志位的影響:不影響標(biāo)志位指令的特殊要求

20、:這是條無(wú)操作數(shù)的指令, 進(jìn)行符號(hào)擴(kuò)展的操作數(shù)必須存放在 AL 寄存器或 AX 寄存器 中。五、除法指令23、無(wú)符號(hào)數(shù)除法 DIV (unsigneddivide帶符號(hào)數(shù)除法 IDIV (singeddivide指令的匯編格式:DIVsrcIDIV src指令的基本功能:字操作(AL<-(AX/src的商(AH<-(AX/src的余數(shù)字節(jié)操作(AX<-(DX,AX/src的商(DX<-(DX,AX/src的余數(shù)指令支持的尋址方式:src作為除數(shù),可用除立即數(shù)以外的任一種尋址方式來(lái)取得。指令對(duì)標(biāo)志位的影響:不影響條件碼。指令的特殊要求:除法指令要求字操作時(shí),被除數(shù)必須為

21、32位,除數(shù)是 16位,商和余數(shù)是 16位的;六、十進(jìn)制調(diào)整指令邏輯指令一、邏輯運(yùn)算24、邏輯與 AND (logicand指令的匯編格式:ANDdst,src指令的基本功能:(dst<-(dst與(src指令支持的尋址方式:兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器尋址。 即為除源操作數(shù)為立即數(shù)的情況外, 源操 作數(shù)和目地操作數(shù)必須有一個(gè)寄存器尋址方式。指令對(duì)標(biāo)志位的影響:指令執(zhí)行后 CF 和 OF 置零,AF 無(wú)定義。SF=1指令執(zhí)行后的結(jié)果為負(fù)數(shù)(符號(hào)位為 1SF=0指令執(zhí)行后的結(jié)果為正數(shù)(符號(hào)位為 0ZF=1指令執(zhí)行后的結(jié)果為零ZF=0指令執(zhí)行后的結(jié)果不為零PF=1結(jié)果操作數(shù)中 1的個(gè)數(shù)為偶數(shù)時(shí)

22、置 1PF=0結(jié)果操作數(shù)中 1的個(gè)數(shù)為奇數(shù)時(shí)置 025、邏輯或 OR (logicor指令的匯編格式:ORdst,src指令的基本功能:(dst<-(dst或(src指令支持的尋址方式:兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器尋址。 即為除源操作數(shù)為立即數(shù)的情況外, 原操 作數(shù)和目的操作數(shù)必須有一個(gè)寄存器尋址方式。指令對(duì)標(biāo)志位的影響:令執(zhí)行后 CF 和 OF 置零,AF 無(wú)定義。SF=1指令執(zhí)行后的結(jié)果為負(fù)數(shù)(符號(hào)位為 1SF=0指令執(zhí)行后的結(jié)果為正數(shù)(符號(hào)位為 0ZF=1指令執(zhí)行后的結(jié)果為零ZF=0指令執(zhí)行后的結(jié)果不為零PF=1結(jié)果操作數(shù)中 1的個(gè)數(shù)為偶數(shù)時(shí)置 1PF=0結(jié)果操作數(shù)中 1的個(gè)數(shù)為奇數(shù)

23、時(shí)置 026、邏輯非 NOT (logicnot指令的匯編格式:NOTorc指令的基本功能:(dst<-(opr指令支持的尋址方式:除立即數(shù)尋址方式以外的其余尋址方式指令對(duì)標(biāo)志位的影響:對(duì)標(biāo)志位無(wú)影響27、異或 XOR (exclusiceor指令的匯編格式:XORdst,src指令的基本功能:(dst<-(dst異或(src指令支持的尋址方式:兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器尋址。 即為除源操作數(shù)為立即數(shù)的情況外, 原操 作數(shù)和目的操作數(shù)必須有一個(gè)寄存器尋址方式。指令對(duì)標(biāo)志位的影響:令執(zhí)行后 CF 和 OF 置零,AF 無(wú)定義。SF=1指令執(zhí)行后的結(jié)果為負(fù)數(shù)(符號(hào)位為 1SF=0指令執(zhí)

24、行后的結(jié)果為正數(shù)(符號(hào)位為 0ZF=1指令執(zhí)行后的結(jié)果為零ZF=0指令執(zhí)行后的結(jié)果不為零PF=1結(jié)果操作數(shù)中 1的個(gè)數(shù)為偶數(shù)時(shí)置 1PF=0結(jié)果操作數(shù)中 1的個(gè)數(shù)為奇數(shù)時(shí)置 028、測(cè)試指令 TEST指令的匯編格式:TESTopr1,opr2指令的基本功能:(opr1與(opr2指令支持的尋址方式:兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器尋址, 即為除源操作數(shù)為立即數(shù)的情況外, 源操 作數(shù)和目的操作數(shù)必須有一個(gè)寄存器尋址方式。指令對(duì)標(biāo)志位的影響:令執(zhí)行后 CF 和 OF 置零,AF 無(wú)定義。SF=1指令執(zhí)行后的結(jié)果為負(fù)數(shù)(符號(hào)位為 1SF=0指令執(zhí)行后的結(jié)果為正數(shù)(符號(hào)位為 0ZF=1指令執(zhí)行后的結(jié)果為零Z

25、F=0指令執(zhí)行后的結(jié)果不為零PF=1結(jié)果操作數(shù)中 1的個(gè)數(shù)為偶數(shù)時(shí)置 1PF=0結(jié)果操作數(shù)中 1的個(gè)數(shù)為奇數(shù)時(shí)置 0二、移位指令29、邏輯左移 SHL (shiftlogical left指令的匯編格式:SHLdst,cnt指令的基本功能:SHL指令向左逐位移動(dòng) cnt 次,每次逐位移動(dòng)后,最低位用 0來(lái)補(bǔ)充,最高位移入 CF。指令支持的尋址方式:目的操作數(shù) dst 可以是除立即數(shù)外的任何尋址方式。 移位次數(shù) (或位數(shù) cnt=1時(shí),1可以直接寫(xiě)在指令中,cnt1時(shí),cnt 必須放入 CL 寄存器中。指令對(duì)標(biāo)志位的影響:CF=移入的數(shù)值OF=1當(dāng) cnt=1時(shí),移動(dòng)后最高位的值發(fā)生變化。OF=

26、0當(dāng) cnt=1時(shí),移動(dòng)時(shí)最高位的值未發(fā)生變化。SF、ZF、PF 根據(jù)移動(dòng)后的結(jié)果設(shè)置。30、邏輯右移 SHR (shiftlogical right指令的匯編格式:SHRdst,cnt指令的基本功能:SHR指令向右逐位移動(dòng) cnt 次,每次逐位移動(dòng)后,最高位用 0來(lái)補(bǔ)充,最低位移入 CF。指令支持的尋址方式:目的操作數(shù) dst 可以是除立即數(shù)外的任何尋址方式。 移位次數(shù) (或位數(shù) cnt=1時(shí),1可以直接寫(xiě)在指令中,cnt1時(shí),cnt 必須放入 CL 寄存器中。指令對(duì)標(biāo)志位的影響:CF=移入的數(shù)值OF=1當(dāng) cnt=1時(shí),移動(dòng)后最高位的值發(fā)生變化。OF=0當(dāng) cnt=1時(shí),移動(dòng)時(shí)最高位的值未

27、發(fā)生變化。SF、ZF、PF 根據(jù)移動(dòng)后的結(jié)果設(shè)置。31、算術(shù)左移 SAL (shiftarithmetic left指令的匯編格式:SALdst cnt指令的基本功能:SAL指令向左逐位移動(dòng) cnt 次,每次逐位移動(dòng)后,最低位用 0來(lái)補(bǔ)充,最高位移入 CF。指令支持的尋址方式:目的操作數(shù) dst 可以是除立即數(shù)外的任何尋址方式。 移位次數(shù) (或位數(shù) cnt=1時(shí),1可以直接寫(xiě)在指令中,cnt1時(shí),cnt 必須放入 CL 寄存器中。指令對(duì)標(biāo)志位的影響:CF=移入的數(shù)值OF=1當(dāng) cnt=1時(shí),移動(dòng)后最高位的值發(fā)生變化。OF=0當(dāng) cnt=1時(shí),移動(dòng)時(shí)最高位的值未發(fā)生變化。SF、ZF、PF 根據(jù)移

28、動(dòng)后的結(jié)果設(shè)置。32、算術(shù)右移 SAR (shiftarithmetic right指令的匯編格式:SARdst,cnt指令的基本功能:SAR指令向右逐位移動(dòng) cnt 次,每次逐位移動(dòng)后,最高位用符號(hào)位來(lái)補(bǔ)充,最低位 移入 CF。指令支持的尋址方式:目的操作數(shù) dst 可以是除立即數(shù)外的任何尋址方式。 移位次數(shù) (或位數(shù) cnt=1時(shí),1可以直接寫(xiě)在指令中,cnt1時(shí),cnt 必須放入 CL 寄存器中。指令對(duì)標(biāo)志位的影響:CF=移入的數(shù)值OF=1當(dāng) cnt=1時(shí),移動(dòng)后最高位的值發(fā)生變化。OF=0當(dāng) cnt=1時(shí),移動(dòng)時(shí)最高位的值未發(fā)生變化。SF、ZF、PF 根據(jù)移動(dòng)后的結(jié)果設(shè)置。33、循環(huán)左

29、移 ROL (rotateleft指令的匯編格式:ROLdst,cnt指令的基本功能:ROL 對(duì)由 dst 指定的寄存器或存儲(chǔ)器操作數(shù)左移循環(huán)移動(dòng) cnt 所指定的次數(shù), 每左 移一次,把最高位同時(shí)移入 CF 和操作數(shù)最低位。指令支持的尋址方式:目的操作數(shù) dst 可以是除立即數(shù)外的任何尋址方式。 移動(dòng)次數(shù) (或位數(shù) cnt=1時(shí),1可以直接寫(xiě)在指令中,cnt1時(shí),cnt 必須放入 CL 寄存器中。指令對(duì)標(biāo)志位的影響:CF=移入的數(shù)值OF=1當(dāng) cnt=1時(shí),移動(dòng)后最高位的值發(fā)生變化。OF=0當(dāng) cnt=1時(shí),移動(dòng)時(shí)最高位的值未發(fā)生變化。SF、ZF、PF 根據(jù)移動(dòng)后的結(jié)果設(shè)置。34、循環(huán)右移

30、ROR (rotateright指令的匯編格式:RORdst,cnt指令的基本功能:ROR 對(duì)由 dst 指定的寄存器或存儲(chǔ)器操作數(shù)右移循環(huán)移動(dòng) cnt 所指定的次數(shù), 每右 移一次,把最低位同時(shí)移入 CF 和操作數(shù)最高位。指令支持的尋址方式:目的操作數(shù) dst 可以是除立即數(shù)外的任何尋址方式。 移動(dòng)次數(shù) (或位數(shù) cnt=1時(shí),1可以直接寫(xiě)在指令中,cnt>1時(shí),cnt 必須放入 CL 寄存器中。指令對(duì)標(biāo)志位的影響:CF=移入的數(shù)值OF=1當(dāng) cnt=1時(shí),移動(dòng)后最高位的值發(fā)生變化。OF=0當(dāng) cnt=1時(shí),移動(dòng)時(shí)最高位的值未發(fā)生變化。SF、ZF、PF 根據(jù)移動(dòng)后的結(jié)果設(shè)置。35、帶進(jìn)

31、位的循環(huán)左移 RCL (rotateleft through carry指令的匯編格式:RCLdst,cnt指令的基本功能:RCL對(duì)由 dst 指定的寄存器或存儲(chǔ)器操作數(shù),連同進(jìn)位標(biāo)志 CF 左循環(huán)移動(dòng),m 所 指定的次數(shù),每左移一次,把操作數(shù)的最高位移入 CF,而 CF 中原有內(nèi)容移入操作數(shù)的最低位。 指定支持的尋址方式:目的操作數(shù) dst 可以是除立即數(shù)外的任何尋址方式。 移動(dòng)次數(shù) (或位數(shù) cnt=1時(shí),1可以直接寫(xiě)在指令中,cnt1時(shí),cnt 必須放入 CL 寄存器中。指令對(duì)標(biāo)志位的影響:CF=移入的數(shù)值。OF=1當(dāng) cnt=1時(shí),移動(dòng)后最高位的值未發(fā)生變化。OF=0當(dāng) cnt=1時(shí),

32、移動(dòng)后最高位的值發(fā)生變化。SF、ZF、PF 標(biāo)志位不受影響。36、帶進(jìn)位的循環(huán)右移 RCR (rotateright through carry指令的匯編格式:RCRdst,cnt指令的基本功能:RCR對(duì)由 dst 指定的寄存器或存儲(chǔ)器操作數(shù),連同進(jìn)位標(biāo)志 CF 右循環(huán)移動(dòng),m 所 指定的次數(shù),每右移一次,把操作數(shù)的最高低位移入 CF,而 CF 中原有內(nèi)容移入操作數(shù)的最高位。 指令支持的尋址方式:目的操作數(shù) dst 可以是除立即數(shù)外的任何尋址方式。 移動(dòng)次數(shù) (或位數(shù) cnt=1時(shí),1可以直接寫(xiě)入指令中,cnt1時(shí),cnt 必須放入 CL 寄存器中。指令對(duì)標(biāo)志位的影響:CF=移入的數(shù)值。OF=

33、1當(dāng) cnt=1時(shí),操作數(shù)最高位的值未發(fā)生變化。OF=0當(dāng) cnt=1時(shí),操作數(shù)最高位的值發(fā)生變化。SF、ZF、PF 標(biāo)志位不受影響。串處理指令一、設(shè)置方向標(biāo)志指令37、DF 置零 CLD (cleardirection flagDF 置一 STD (setdirection flag指令的匯編格式:CLDSTD指令的基本功能:CLDDF=0STD DF=1二、串處理指令38、串傳送 MOVSB /MOVSW (movestring byte/word指令的匯編格式:MOVSBMOVSW指令的基本功能:(ES:DI<-(DS:SI(SI<-(SI+/-1(字節(jié)或+/-2(字(DI&

34、lt;-(DI+/-1(字節(jié)或+/-2(字指令對(duì)條件碼的影響:不影響條件碼。指令的特殊要求:源串必須在數(shù)據(jù)段中,目的串必須在附加段中,串處理指令隱含的尋址方式是 SI 和 DI 寄存器的間接尋址方式。源串允許使用段跨越前綴來(lái)指定段。39、存串 STOSB /STOSW (stroefrom string byte/word指令的匯編格式:STOSBSTOSW指令的基本功能:(ES:DI<-(AL或(AX(DI<-(DI+/-1(字節(jié)或+/-2(字指令對(duì)條件碼的影響:不影響條件碼。指令的特殊要求:源串必須在數(shù)據(jù)段中,目的串必須在附加段中,串處理指令隱含的尋址方式是 SI 和 DI 寄

35、存器的間接尋址方式。源串允許使用段跨越前綴來(lái)指定段。40、取串 LODSB /LODSW (loadfrom string byte/word指令的匯編格式:LODSBLODSW指令的基本功能:(AL或(AX<-(DS:SI(SI<-(SI+/-1(字節(jié)或+/-2(字指令對(duì)條件碼的影響:不影響條件碼。指令的特殊要求:源串必須在數(shù)據(jù)段中,目的串必須在附加段中,串處理指令隱含的尋址方式是 SI 和 DI 寄存器的間接尋址方式。源串允許使用段跨越前綴來(lái)指定段。41、串比較 CMPSB /CMPSW (comparestring byte/word指令的匯編格式:CMPSBCMPSW指令的

36、基本功能:(DS:SI-(ES:DI根據(jù)比較結(jié)果設(shè)置條件碼(SI<-(SI+/-1(字節(jié)或+/-2(字(DI<-(DI+/-1(字節(jié)或+/-2(字指令對(duì)條件碼的影響:SF=1減法結(jié)果為負(fù)數(shù)(符號(hào)位為 1SF=0減法結(jié)果為正數(shù)(符號(hào)位為 0ZF=1減法結(jié)果為零ZF=0減法結(jié)果不為零CF=1二進(jìn)制減法運(yùn)算中最高有效位向高位有借位(被減數(shù)小于減數(shù),不夠減的情況CF=0二進(jìn)制減法運(yùn)算中最高有效為向高位無(wú)借位(被減數(shù)=減數(shù),夠減的情況OF=1兩數(shù)符號(hào)相反(正數(shù)-負(fù)數(shù),或負(fù)數(shù)-正數(shù),而結(jié)果符號(hào)與減數(shù)相同。OF=0同符號(hào)數(shù)相減時(shí),或不同符號(hào)數(shù)相減,其結(jié)果符號(hào)與減數(shù)不同。42、串掃描 SCASB

37、/SCASW (scanstring byte /word指令的匯編格式:SCASBSCASW指令的基本功能:(AL<-(ES:DI或(AX<-(ES:DI根據(jù)掃描比較的結(jié)果設(shè)置條件碼。(DI<-(DI+/-1(字節(jié)或+/-2(字指令對(duì)條件碼的影響:SF=1結(jié)果為負(fù)數(shù)(符號(hào)位為 1SF=0結(jié)果為正數(shù)(符號(hào)位為 0ZF=1結(jié)果為零ZF=0結(jié)果不為零CF=1二進(jìn)制減法運(yùn)算中最高有效位向高位有借位(被減數(shù)小于減數(shù),不夠減的情況CF=0二進(jìn)制減法運(yùn)算中最高有效為向高位無(wú)借位(被減數(shù)=減數(shù),夠減的情況OF=1兩數(shù)符號(hào)相反(正數(shù)-負(fù)數(shù),或負(fù)數(shù)-正數(shù),而結(jié)果符號(hào)與減數(shù)相同。OF=0同符號(hào)數(shù)

38、相減時(shí),或不同符號(hào)數(shù)相減,其結(jié)果符號(hào)與減數(shù)不同。三、串重復(fù)前綴43、重復(fù)執(zhí)行串 REP指令的匯編格式:REP(CX=重復(fù)次數(shù)指令的基本功能: (CX=0時(shí),串指令執(zhí)行完畢,否則執(zhí)行 (CX(CX-1 執(zhí)行串指令(MOVS或 STOS 重復(fù)執(zhí)行44、相等/為零時(shí)重復(fù)執(zhí)行串指令 REPE/REPZ指令的匯編格式:REPE/REPZ (CX=比較/掃描的次數(shù)指令的基本功能: (CX=0或 ZF=0時(shí),結(jié)束執(zhí)行串指令,否則繼續(xù) (CX(CX-1 執(zhí)行串指令(CMPS或 SCAS 重復(fù)執(zhí)行45、不等/不為零時(shí)重復(fù)執(zhí)行串指令 REPNE /PEPNZ指令的匯編格式:REPNE/PEPNZ (CX=比較/掃

39、描的次數(shù)指令的基本功能: (CX=0或 ZF=1,結(jié)束執(zhí)行串指令,否則繼續(xù) (CX(CX-1 執(zhí)行串指令(CMPS或 SCAS 重復(fù)執(zhí)行控制轉(zhuǎn)移指令一、無(wú)條件轉(zhuǎn)移指令46、短轉(zhuǎn)移 JMP SHORT label (shortjump指令的匯編格式:JMPSHORT label指令的基本功能:(IP<-當(dāng)前(IP+8位位移量 8位位移量是匯編程序在匯編源程序時(shí),根據(jù)目標(biāo)地 址和當(dāng)前 IP 之間的距離自動(dòng)生成的。指令對(duì)條件碼的影響:對(duì)標(biāo)志位無(wú)影響。47、近轉(zhuǎn)移 JMP NEAR PTR label (nearjump指令的匯編格式:直接轉(zhuǎn)移 JMP label (directjump寄存器間

40、接轉(zhuǎn)移 JMP reg (registerindirect jump存儲(chǔ)器間接轉(zhuǎn)移 JMP WORD PTR OPR (memoryindirect jump指令的基本功能:JMPlabel (IP<-OFFSET label =(IP當(dāng)前+16位位移量JMP reg (IP<-(regJMP WORD PTR OPR (IP<-(PA+1,PA指令支持的尋址方式:指令中的轉(zhuǎn)向地址可以是直接尋址方式、 寄存器尋址方式、 寄存器間接尋址方 式和存儲(chǔ)器尋址方式。指令對(duì)條件碼的影響:對(duì)標(biāo)志位無(wú)影響。48、遠(yuǎn)轉(zhuǎn)移 JMP FAR PTR label (forjump指令的匯編格式:J

41、MPFAR PTR label指令的基本功能:(IP<-label的段內(nèi)偏移地址(CS<-label所在段的段地址指令支持的尋址方式:遠(yuǎn)轉(zhuǎn)移的目的地址可以使用除立即尋址方式外的任何尋址方式來(lái)表示。 指令對(duì)條件碼的影響:對(duì)標(biāo)志位無(wú)影響。二、條件轉(zhuǎn)移指令指令的匯編格式及功能根據(jù)條件碼的值轉(zhuǎn)移:49、JZ(JEOPR ZF=150、JNZ(JNEOPR ZF=051、JS OPR SF=1 52、JNS OPR SF=0 53、JO OPR OF=1 54、JNO OPR OF=0 55、JP OPR PF=1 56、JNP OPR PF=0 57、JC OPR CF=1 58、JNC

42、OPR CF=0 比較兩個(gè)無(wú)符號(hào)數(shù),根據(jù)比較的結(jié)果轉(zhuǎn)移 59、JB(JNAE,JC OPR CF=1 被減數(shù)小于減數(shù)則轉(zhuǎn)移 60、JNB(JAE,JNC OPR CF=0 被減數(shù)大于或等于減數(shù)則轉(zhuǎn)移 61、JBE(JNA OPR CF 或 ZF=1 被減數(shù)小于或等于減數(shù)則轉(zhuǎn)移 62、JNBE(JA OPR CF 或 ZF=0 被減數(shù)大于減數(shù)則轉(zhuǎn)移 比較兩個(gè)帶符號(hào)數(shù),根據(jù)比較結(jié)果轉(zhuǎn)移 63、JL/JNGE OPR SF 異或 OF=1 被減數(shù)小于減數(shù)則轉(zhuǎn)移 64、JNL/JGE SF 異或 OF=0 被減數(shù)不小于減數(shù)則轉(zhuǎn)移 65、JLE/JNE (SF 異或 OF與 ZF=1 被減數(shù)不大于減數(shù)則轉(zhuǎn)移 66、JNLE/JG (SF 異或 OF與 ZF=0 被減數(shù)大于減數(shù)則轉(zhuǎn)移 根據(jù) CX 寄存器的值轉(zhuǎn)移 67、JCXZ (CX=0 CX 內(nèi)容為零 則轉(zhuǎn)移 指令的特殊要求:所有條件轉(zhuǎn)移指令都是短轉(zhuǎn)移指令,轉(zhuǎn)移的目標(biāo)地址必須在當(dāng)前 IP 地址的-128 至 +127 字節(jié)范圍之內(nèi),因此條件轉(zhuǎn)移指令是 2 字節(jié)指令。 三、循環(huán)指令 68、循環(huán) LOOP (loop 指令的匯編格式:LOOP label 指令的基本功能: (CX(CX1 若(CX0,則(IP(IP當(dāng)前位移量,否則循環(huán)結(jié)束。 指令的特殊要求:循環(huán)指令都是短轉(zhuǎn)移格式的指令,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論