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

下載本文檔

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

文檔簡(jiǎn)介

1、一、通用數(shù)據(jù)傳送指令1、傳送指令 MOV (move)指令的匯編格式:MOV DST,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 (push onto the stack) 出棧指令 POP (pop from the stack)指令的匯編格式:PUSH SRC ;POP

2、DST指令的基本功能:PUSH指令在程序中常用來暫存某些數(shù)據(jù),而POP指令又可將這些數(shù)據(jù)恢復(fù)。 PUSH SRC (SP)<-(SP)-2 ;(SP)<-(SRC) POP 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)指令的匯編格式:XCHG

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

4、間的通信都由輸入輸出指令I(lǐng)N和OUT來完成。IN指令將信息從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)傳送字 OU

5、T DX,ac port>0FFH (DX)<-(AL)傳送字節(jié) 或 (DX)+1,(DX)<-(AX)傳送字指令對(duì)標(biāo)志位的影響:不影響標(biāo)志位。指令的特殊要求:只限于在AL或AX與I/O端口之間傳送信息。 傳送16位信息用AX,傳送8位信息用AL,這取決于外設(shè)端口的寬度。 5、換碼指令 XLAT (translate)指令的匯編格式:XLAT opr 或 XLAT指令的基本功能:這條指令根據(jù)AL寄存器提供的位移量,將BX指使的字節(jié)表格中的代碼換存在AL中。 (AL)<-(DS)*16+(BX)+(AL)指令對(duì)標(biāo)志位的影響:不影響標(biāo)志位。指令的特殊要求:所建字節(jié)表格的長(zhǎng)度

6、不能超過256字節(jié),因?yàn)榇娣盼灰屏康氖?位寄存器AL。 opr為表格的首地址,因?yàn)閛pr所表示的偏移地址已存入BX寄存器,所以opr在換碼指令中可有可無,有則提高程序的可讀性。三、地址傳送指令6、有效地址傳送器 LEA (load effective address)指令的匯編格式:LEA reg,src指令的基本功能:LEA指令把源操作數(shù)的有效地址送到指定的寄存器,這個(gè)有效地址是由src選定的一種存儲(chǔ)器尋址方式確定的。指令支持的尋址方式:各種存儲(chǔ)器尋址方式。指令對(duì)標(biāo)志位的影響:不影響標(biāo)志位。指令的特出要求:指令中reg不能是段寄存器;7、指針?biāo)图拇嫫骱虳S LDS (load DS with

7、 point)指針?biāo)图拇嫫骱虴S LES (load ES with point)指令的匯編格式:LDS reg,src LES reg,src指令的基本功能:LDS和LES指令把確定內(nèi)存單元位置的偏移地址送寄存器,段地址DS或ES。這個(gè)偏移地址和段地址(也稱地址指針)是由src指定的兩個(gè)相繼字單元提供的。 LDS reg,src (reg)<-(src) (DS)<-(src+2) LES reg,src (reg)<-(src) (ES)<-(src+2)指令支持的尋址方式:src必須為存儲(chǔ)器尋址方式指令對(duì)標(biāo)志位的影響:不影響標(biāo)志位。指令的特殊要求:指令中REG不能

8、是段寄存器;四、標(biāo)志寄存器傳送指令8、標(biāo)志寄存器的低字節(jié)送AH LAHF (load AH with FLAGS)指令的匯編格式:LAHF指令的基本功能:(AH)<-(FLAGS)0-7指令對(duì)標(biāo)志位的影響:不影響標(biāo)志位9、AH送標(biāo)志寄存器低字節(jié) SAHF(store AH into FLAGS)指令的匯編格式:SAHF指令的基本功能:(FLAGS)0-7<-(AH)指令對(duì)標(biāo)志位的影響:由裝入值來確定標(biāo)志位的值。10、標(biāo)志進(jìn)棧 PUSHF (push the flags)指令的匯編格式:PUSHF指令的基本功能:(SP)<-(SP)-2 (SP)+1,(SP)<-(FLA

9、GS)0-15指令對(duì)標(biāo)志位的影響:不影響標(biāo)志位。11、標(biāo)志出棧 POPF (pop the FLAGES)指令的匯編格式:POPF指令的基本功能:(FLAGS)0-15<-(SP)+1,(SP) (SP)<-(SP)+2指令對(duì)標(biāo)志位的影響:由裝入值來確定標(biāo)志位的值。算術(shù)指令一、加法指令12、加法指令 ADD (addition)指令的匯編格式:add dst,src指令的基本功能:(dst)<-(src)+(dst)指令支持的尋址方式:他們兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器尋址。即為除源操作數(shù)為立即數(shù)的情況外,源操作數(shù)和目地操作數(shù)必須有一個(gè)寄存器尋址方式。指令對(duì)標(biāo)志位的影響:SF=1

10、 加法結(jié)果為負(fù)數(shù)(符號(hào)位為1) SF=0 加法結(jié)果為正數(shù)(符號(hào)位為0) ZF=1 加法結(jié)果為零 ZF=0 加法結(jié)果不為零 CF=1 最高有效位向高位有進(jìn)位 CF=0 最高有效位向高位無進(jìn)位 OF=1 兩個(gè)同符號(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 (add with carry)指令的匯編格式:ADD dst,src指令的基本功能:(dst)<-(src)+(dst)+CF指令支持的尋址方式:他們兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器尋址。即為除源操作數(shù)為立即數(shù)的情況外,源操作數(shù)和目地操

11、作數(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 最低有效位相高位無進(jìn)位 OF=1 兩個(gè)同符號(hào)數(shù)相加,結(jié)果符號(hào)與其相反, OF=0 兩個(gè)同符號(hào)數(shù)相加,或同符號(hào)相加,結(jié)果符號(hào)與其相同14、加1指令 INC (increament)指令的匯編格式:INC opr指令的基本功能:(opr)<-(opr)指令支持的尋址方式 可以使用除立即數(shù)方式外的任何尋址方式指令對(duì)標(biāo)志位的影響:SF=1 加法結(jié)果為負(fù)數(shù) SF=0 加法結(jié)果為正數(shù) ZF=1 加法結(jié)果為零

12、 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)指令的匯編格式:SUB dst,src指令的基本功能:(dst)<-(dst)-(src)指令支持的尋址方式:他們兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器尋址。即為除源操作數(shù)為立即數(shù)的情況外,源操作數(shù)和目地操作數(shù)必須有一個(gè)寄存器尋址方式。指令對(duì)標(biāo)志位的影響:SF=1 減法結(jié)果為負(fù)數(shù)(符號(hào)位為1) SF=0 減法結(jié)果為正數(shù)(符號(hào)位為0) ZF=1 減法結(jié)果為零 ZF=0 減法結(jié)果不為零 CF=1 二進(jìn)制減法運(yùn)算中最

13、高有效位向高位有借位(被減數(shù)小于減數(shù),不夠減的情況) CF=0 二進(jìn)制減法運(yùn)算中最高有效為向高位無借位(被減數(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 (subtract with borrow)指令的匯編格式:SBB dst,src指令的基本功能:(dst)<-(dst)-(src)-CF指令支持的尋址方式:他們兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器尋址。即為除源操作數(shù)為立即數(shù)的情況外,源操作數(shù)和目地操作數(shù)必須有一個(gè)寄存器尋址方式。指令對(duì)標(biāo)志位的影

14、響:SF=1 減法結(jié)果為負(fù)數(shù)(符號(hào)位為1) SF=0 減法結(jié)果為正數(shù)(符號(hào)位為0) ZF=1 減法結(jié)果為零 ZF=0 減法結(jié)果不為零 CF=1 二進(jìn)制減法運(yùn)算中最高有效位向高位有借位(被減數(shù)小于減數(shù),不夠減的情況) CF=0 二進(jìn)制減法運(yùn)算中最高有效為向高位無借位(被減數(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ù)不同。17、減1指令 DEC (decrement)指令的匯編格式:DEC opr指令的基本功能:(opr)<-(opr)-1指令支持的尋址方式:可以使用除立即數(shù)方

15、式外的任何尋址方式。指令對(duì)標(biāo)志位的影響:SF=1 減法結(jié)果為負(fù)數(shù)(符號(hào)位為1) SF=0 減法結(jié)果為正數(shù)(符號(hào)位為0) ZF=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)指令的匯編格式:CMP opr1,opr2指令的基本功能:(opr1)-(opr2),根據(jù)相減結(jié)果設(shè)置條件碼,但不回送結(jié)果。指令支持的尋址方式:他們兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器尋址。即為除源操作數(shù)為立即數(shù)的情況外,源操作數(shù)和目地操作數(shù)必須有一個(gè)寄

16、存器尋址方式。指令對(duì)標(biāo)志位的影響:SF=1 減法結(jié)果為負(fù)數(shù)(符號(hào)位為1) SF=0 減法結(jié)果為正數(shù)(符號(hào)位為0) ZF=1 減法結(jié)果為零 ZF=0 減法結(jié)果不為零 CF=1 二進(jìn)制減法運(yùn)算中最高有效位向高位有借位(被減數(shù)小于減數(shù),不夠減的情況) CF=0 二進(jìn)制減法運(yùn)算中最高有效為向高位無借位(被減數(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ǔ)指令 NEG (negate)指令的匯編格式:NEG opr 指令的基本功能:(opr)<- -(opr)指令支持的尋

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

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

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

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

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

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

23、 指令執(zhí)行后的結(jié)果為零 ZF=0 指令執(zhí)行后的結(jié)果不為零 PF=1 結(jié)果操作數(shù)中1的個(gè)數(shù)為偶數(shù)時(shí)置1 PF=0 結(jié)果操作數(shù)中1的個(gè)數(shù)為奇數(shù)時(shí)置026、邏輯非 NOT (logic not)指令的匯編格式:NOT orc指令的基本功能:(dst)<-(opr)指令支持的尋址方式:除立即數(shù)尋址方式以外的其余尋址方式指令對(duì)標(biāo)志位的影響:對(duì)標(biāo)志位無影響27、異或 XOR (exclusice or)指令的匯編格式:XOR dst,src指令的基本功能:(dst)<-(dst)異或(src)指令支持的尋址方式:兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器尋址。即為除源操作數(shù)為立即數(shù)的情況外,原操作數(shù)和目的操作

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

25、:令執(zhí)行后 CF 和 OF 置零,AF無定義。 SF=1 指令執(zhí)行后的結(jié)果為負(fù)數(shù)(符號(hào)位為1) SF=0 指令執(zhí)行后的結(jié)果為正數(shù)(符號(hào)位為0) ZF=1 指令執(zhí)行后的結(jié)果為零 ZF=0 指令執(zhí)行后的結(jié)果不為零 PF=1 結(jié)果操作數(shù)中1的個(gè)數(shù)為偶數(shù)時(shí)置1 PF=0 結(jié)果操作數(shù)中1的個(gè)數(shù)為奇數(shù)時(shí)置0 二、移位指令29、邏輯左移 SHL (shift logical left)指令的匯編格式:SHL dst,cnt指令的基本功能:SHL指令向左逐位移動(dòng)cnt次,每次逐位移動(dòng)后,最低位用0來補(bǔ)充,最高位移入CF。指令支持的尋址方式:目的操作數(shù)dst可以是除立即數(shù)外的任何尋址方式。移位次數(shù)(或位數(shù))cn

26、t=1時(shí),1可以直接寫在指令中,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è)置。30、邏輯右移 SHR (shift logical right)指令的匯編格式:SHR dst,cnt指令的基本功能:SHR指令向右逐位移動(dòng)cnt次,每次逐位移動(dòng)后,最高位用0來補(bǔ)充,最低位移入CF。指令支持的尋址方式:目的操作數(shù)dst可以是除立即數(shù)外的任何尋址方式。移位次數(shù)(或位數(shù))cnt=1時(shí),1可以直接寫在指令中,cnt1時(shí),cnt

27、必須放入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è)置。31、算術(shù)左移 SAL (shift arithmetic left)指令的匯編格式:SAL dst cnt指令的基本功能:SAL指令向左逐位移動(dòng)cnt次,每次逐位移動(dòng)后,最低位用0來補(bǔ)充,最高位移入CF。指令支持的尋址方式:目的操作數(shù)dst可以是除立即數(shù)外的任何尋址方式。移位次數(shù)(或位數(shù))cnt=1時(shí),1可以直接寫在指令中,cnt1時(shí),cnt必須放入CL寄存器中。指令對(duì)標(biāo)志位的影響:CF

28、=移入的數(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è)置。32、算術(shù)右移 SAR (shift arithmetic right)指令的匯編格式:SAR dst,cnt指令的基本功能:SAR指令向右逐位移動(dòng)cnt次,每次逐位移動(dòng)后,最高位用符號(hào)位來補(bǔ)充,最低位移入CF。指令支持的尋址方式:目的操作數(shù)dst可以是除立即數(shù)外的任何尋址方式。移位次數(shù)(或位數(shù))cnt=1時(shí),1可以直接寫在指令中,cnt1時(shí),cnt必須放入CL寄存器中。指令對(duì)標(biāo)志位的影響:CF=移入的數(shù)值 OF=1 當(dāng)cnt=1時(shí),

29、移動(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)左移 ROL (rotate left)指令的匯編格式:ROL dst,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可以直接寫在指令中,cnt1時(shí),cnt必須放入CL寄存器中。指令對(duì)標(biāo)志位的影響:CF=移入的數(shù)值 OF=1 當(dāng)cnt=1時(shí),移動(dòng)后最高位的值發(fā)生變化

30、。 OF=0 當(dāng)cnt=1時(shí),移動(dòng)時(shí)最高位的值未發(fā)生變化。 SF、ZF、PF根據(jù)移動(dòng)后的結(jié)果設(shè)置。34、循環(huán)右移 ROR (rotate right)指令的匯編格式:ROR dst,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可以直接寫在指令中,cnt>1時(shí),cnt必須放入CL寄存器中。指令對(duì)標(biāo)志位的影響:CF=移入的數(shù)值 OF=1 當(dāng)cnt=1時(shí),移動(dòng)后最高位的值發(fā)生變化。 OF=0

31、當(dāng)cnt=1時(shí),移動(dòng)時(shí)最高位的值未發(fā)生變化。 SF、ZF、PF根據(jù)移動(dòng)后的結(jié)果設(shè)置。35、帶進(jìn)位的循環(huán)左移 RCL (rotate left through carry)指令的匯編格式:RCL dst,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可以直接寫在指令中,cnt1時(shí),cnt必須放入CL寄存器中。指令對(duì)標(biāo)志位的影響:CF=移入的數(shù)值。 OF=1

32、當(dāng)cnt=1時(shí),移動(dòng)后最高位的值未發(fā)生變化。 OF=0 當(dāng)cnt=1時(shí),移動(dòng)后最高位的值發(fā)生變化。 SF、ZF、PF標(biāo)志位不受影響。36、帶進(jìn)位的循環(huán)右移 RCR (rotate right through carry)指令的匯編格式:RCR dst,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可以直接寫入指令中,cnt1時(shí),cnt必須放入CL寄存器中

33、。指令對(duì)標(biāo)志位的影響:CF=移入的數(shù)值。 OF=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 (clear direction flag)DF置一 STD (set direction flag)指令的匯編格式:CLD STD指令的基本功能:CLD DF=0 STD DF=1二、串處理指令38、串傳送 MOVSB / MOVSW (move string byte/word)指令的匯編格式:MOVSB MOVSW指令的基本功能:(ES:DI)<-

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

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

36、MPSB / CMPSW (compare string byte/word)指令的匯編格式:CMPSB CMPSW指令的基本功能:(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)位為1) SF=0 減法結(jié)果為正數(shù)(符號(hào)位為0) ZF=1 減法結(jié)果為零 ZF=0 減法結(jié)果不為零 CF=1 二進(jìn)制減法運(yùn)算中最高有效位向高位有借位(被減數(shù)小于減數(shù),不夠減的情況) CF=0 二進(jìn)制減法運(yùn)算中最高有效為向高位無借位(被減數(shù)=減數(shù)

37、,夠減的情況) 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 / SCASW (scan string byte / word)指令的匯編格式:SCASB SCASW指令的基本功能:(AL)<-(ES:DI)或(AX)<-(ES:DI) 根據(jù)掃描比較的結(jié)果設(shè)置條件碼。 (DI)<-(DI)+/-1(字節(jié))或+/-2(字)指令對(duì)條件碼的影響:SF=1 結(jié)果為負(fù)數(shù)(符號(hào)位為1) SF=0 結(jié)果為正數(shù)(符號(hào)位為0) ZF=1 結(jié)果為零 ZF=0 結(jié)果不為零 CF

38、=1 二進(jìn)制減法運(yùn)算中最高有效位向高位有借位(被減數(shù)小于減數(shù),不夠減的情況) CF=0 二進(jìn)制減法運(yùn)算中最高有效為向高位無借位(被減數(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ù)不同。三、串重復(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

39、)=比較/掃描的次數(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)=比較/掃描的次數(shù)指令的基本功能: (CX)=0或ZF=1,結(jié)束執(zhí)行串指令,否則繼續(xù) (CX)(CX)1 執(zhí)行串指令(CMPS或SCAS) 重復(fù)執(zhí)行控制轉(zhuǎn)移指令一、無條件轉(zhuǎn)移指令46、短轉(zhuǎn)移 JMP SHORT label (short jump)指令的匯編格式:JMP SHORT label指令的基本功能:(IP)<-當(dāng)前(

40、IP)+8位位移量 8位位移量是匯編程序在匯編源程序時(shí),根據(jù)目標(biāo)地址和當(dāng)前IP之間的距離自動(dòng)生成的。指令對(duì)條件碼的影響:對(duì)標(biāo)志位無影響。47、近轉(zhuǎn)移 JMP NEAR PTR label (near jump)指令的匯編格式:直接轉(zhuǎn)移 JMP label (direct jump) 寄存器間接轉(zhuǎn)移 JMP reg (register indirect jump) 存儲(chǔ)器間接轉(zhuǎn)移 JMP WORD PTR OPR (memory indirect jump)指令的基本功能:JMP label (IP) <- OFFSET label = (IP)當(dāng)前16位位移量 JMP reg (IP)

41、<- (reg) JMP WORD PTR OPR (IP) <- (PA+1,PA)指令支持的尋址方式:指令中的轉(zhuǎn)向地址可以是直接尋址方式、寄存器尋址方式、寄存器間接尋址方式和存儲(chǔ)器尋址方式。指令對(duì)條件碼的影響:對(duì)標(biāo)志位無影響。48、遠(yuǎn)轉(zhuǎn)移 JMP FAR PTR label (for jump)指令的匯編格式:JMP FAR PTR label指令的基本功能:(IP)<-label的段內(nèi)偏移地址 (CS)<-label所在段的段地址指令支持的尋址方式:遠(yuǎn)轉(zhuǎn)移的目的地址可以使用除立即尋址方式外的任何尋址方式來表示。指令對(duì)條件碼的影響:對(duì)標(biāo)志位無影響。二、條件轉(zhuǎn)移指令指

42、令的匯編格式及功能根據(jù)條件碼的值轉(zhuǎn)移:49、JZ(JE) OPR ZF=150、JNZ(JNE) OPR ZF=051、JS OPR SF=152、JNS OPR SF=053、JO OPR OF=154、JNO OPR OF=055、JP OPR PF=156、JNP OPR PF=057、JC OPR CF=158、JNC OPR CF=0比較兩個(gè)無符號(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)移

43、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)(CX)1 若(CX)0,則(IP)(IP)當(dāng)前位移量,否則循環(huán)結(jié)束。指令的特殊要求:循環(huán)指令都是短轉(zhuǎn)移格式的指令,也就是說,位移量是用8位帶符號(hào)數(shù)來表示

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論