一些常用的匯編語(yǔ)言指令_第1頁(yè)
一些常用的匯編語(yǔ)言指令_第2頁(yè)
一些常用的匯編語(yǔ)言指令_第3頁(yè)
一些常用的匯編語(yǔ)言指令_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、匯編語(yǔ)言常用指令大家在做免殺或者破解軟件的時(shí)候經(jīng)常要用到匯編指令,本人整理出了常用的 希望對(duì)大家有幫助!數(shù)據(jù)傳送指令MOV:寄存器之間傳送注意,源和目的不能同時(shí)是段寄存器;代碼段寄存器CS不能作為目的; 指令指針I(yè)P不能作為源和目的。立即數(shù)不能直接傳送段寄存器。源和目的操作數(shù)類型要一 致;除了串操作指令外,源和目的不能同時(shí)是存儲(chǔ)器操作數(shù)。XCHG交換指令:操作數(shù)可以是通用寄存器和存儲(chǔ)單元,但不包括段寄存器,也不能同時(shí)是 存儲(chǔ)單元,還不能有立即數(shù)。LEA 16位寄存器 存儲(chǔ)器操作數(shù)傳送有效地址指令:必須是一個(gè)16位寄存器和存儲(chǔ)器操 作數(shù)。LDS 16位寄存器 存儲(chǔ)器操作數(shù) 傳送存儲(chǔ)器操作數(shù)32位

2、地址,它的16位偏移地址送16 位寄存器,16位段基值送入DS中。LES :同上,只是16位段基址送ES中。堆棧操作指令PUSH操作數(shù),操作數(shù)不能使用立即數(shù),POP操作數(shù), 操作數(shù)不能是CS和立即數(shù)標(biāo)志操作指令LAHF:把標(biāo)志寄存器低8位,符號(hào)SF,零ZF,輔助進(jìn)位AF,奇偶PF,進(jìn)位CF傳送到AH 指定的位。不影響標(biāo)志位。SAHF:與上相反,把AH中的標(biāo)志位傳送回標(biāo)志寄存器。PUSHF :把標(biāo)志寄存器內(nèi)容壓入棧頂。POPF:把棧頂?shù)囊粋€(gè)字節(jié)傳送到標(biāo)志寄存器中。CLC:進(jìn)位位清零。STC:進(jìn)位位為1。CMC:進(jìn)位位取反。CLD:使方向標(biāo)志DF為零,在執(zhí)行串操作中,使地址按遞增方式變化。STD:

3、 DF 為 1。CLI:清中斷允許標(biāo)志IF。Cpu不相應(yīng)來(lái)自外部裝置的可屏蔽中斷。STI: IF 為 1。加減運(yùn)算指令 注意:對(duì)于此類運(yùn)算只有通用寄存器和存儲(chǔ)單元可以存放運(yùn)算結(jié)果。如果參與運(yùn)算的操作 數(shù)有兩個(gè),最多只能有一個(gè)存儲(chǔ)器操作數(shù)并且它們的類型必須一致。ADD。ADC:把進(jìn)位CF中的數(shù)值加上去。INC:加1指令SUB。SBB:把進(jìn)位CF中數(shù)值減去。DEC:減1指令。NEG操作數(shù):取補(bǔ)指令,即用0減去操作數(shù)再送回操作數(shù)。CMP:比較指令,完成操作數(shù)1減去操作數(shù)2,結(jié)果不送操作數(shù)1,但影響標(biāo)志位??筛鶕?jù) ZF (零)是否被置1判斷相等;如果兩者是無(wú)符號(hào)數(shù),可根據(jù)CF判斷大小;如果兩者是有 符

4、號(hào)數(shù),要根據(jù)SF和OF判斷大小。乘除運(yùn)算指令MUL操作數(shù):無(wú)符號(hào)數(shù)乘法指令。操作數(shù)不能是立即數(shù)。操作數(shù)是字節(jié)與AL中的無(wú)符號(hào)數(shù) 相乘,16位結(jié)果送AX中。若字節(jié),則與AX乘,結(jié)果高16送DX,低16送AX。如乘積高半 部分不為零,則CF、OF為1,否則為0。所以CF和OF表示AH或DX中含有結(jié)果的有效數(shù)。 IMUL操作數(shù):有符號(hào)數(shù)乘法指令?;九cMUL相同。DIV操作數(shù):被除數(shù)是在AX (除數(shù)8位)或者DX和AX (除數(shù)16位),操作數(shù)不能是立即 數(shù)。如果除數(shù)是0,或者在8(16)位除數(shù)時(shí)商超過(guò)8(16)位,則認(rèn)為是溢出,引起0號(hào) 中斷。IDIV:有符號(hào)除法指令,當(dāng)除數(shù)為0,活著商太大,太小(

5、字節(jié)超過(guò)127,127字 超過(guò)32767,32767)時(shí),引起0號(hào)中斷。符號(hào)擴(kuò)展指令CBW,CWD:把AL中的符號(hào)擴(kuò)展到寄存器AH中,不影響各標(biāo)志位。CWD則把AX中的符號(hào)擴(kuò) 展到DX,同樣不影響標(biāo)志位。注意:在無(wú)符號(hào)數(shù)除之前,不宜用這兩條指令,一般采用(OR 清高8位或高16位。邏輯運(yùn)算指令與位移指令注意:只能有一個(gè)存儲(chǔ)器操作數(shù);只有通用寄存器或存儲(chǔ)器操作數(shù)可作為目的操作數(shù),用于 存放結(jié)果;操作數(shù)的類型必須一致。NOT:取反,不影響標(biāo)志位。AND操作數(shù)1操作數(shù)2:操作結(jié)果送錯(cuò)作數(shù)1,標(biāo)志CF (進(jìn)位)、OF (溢出)清0,PF (奇 偶)ZF (0標(biāo)志)SF (符號(hào))反映運(yùn)算結(jié)果,AF (輔

6、助進(jìn)位)未定義。自己與自己AND值 不變,她主要用于將操作數(shù)中與1相與的位保持不變,與0相與清0。(都為1時(shí)為1)OR操作數(shù)1操作數(shù)2:自己與自己OR值不變,CF (進(jìn)位)、OF (溢出)清0,PF (奇偶) ZF (0標(biāo)志)SF (符號(hào))反映運(yùn)算結(jié)果,AF (輔助進(jìn)位)未定義。她使用于將若干位置1:與1相或?yàn)?,保持不變的位與0相或。(都為0時(shí)為0)XOR操作數(shù)1操作數(shù)2:自己與自己異或結(jié)果為0,標(biāo)志CF (進(jìn)位)、OF (溢出)清0, PF (奇偶)ZF(0)SF(符號(hào))反映運(yùn)算結(jié)果,AF(輔助進(jìn)位)未定義。主要用于將若干位取 反的操作:與1異或取反,與0異或保持不變。(相同為0,不同為1

7、)TEST操作數(shù)1操作數(shù)2:測(cè)試指令,和AND相同,但結(jié)果不送操作數(shù)1,各標(biāo)志位同AND 操作。位移指令SAL/SHL操作數(shù) 1或CL:算術(shù)左移與邏輯左移進(jìn)行相同的動(dòng)作,操作數(shù)是通用寄存器或 者存儲(chǔ)器操作數(shù),位移數(shù)為1或?yàn)镃L;最高位移CF(進(jìn)位),右邊用0補(bǔ)位。左移一次相 當(dāng)源操作數(shù)乘2。SAR操作數(shù) 1或CL:算術(shù)右移,位移數(shù)為1或?yàn)镃L;操作數(shù)是通用寄存器或者存儲(chǔ)器 操作數(shù),左符號(hào)位保持不變,移出最低位進(jìn)CF (進(jìn)位)。相當(dāng)源操作數(shù)除2。SHR操作數(shù)1或CL :邏輯右移,操作數(shù)是通用寄存器或者存儲(chǔ)器操作數(shù),位移數(shù)為1或 為CL;左邊用0補(bǔ)足,移出的最低位進(jìn)CF(進(jìn)位)對(duì)于無(wú)符號(hào)數(shù),右移一

8、位相當(dāng)于除2。 ROL/ROR操作數(shù)1或CL:不帶進(jìn)位左移/右移,操作數(shù)是通用寄存器或者存儲(chǔ)器操作數(shù), 位移數(shù)為1或?yàn)镃L。RCL/RCR操作數(shù)1或CL:帶進(jìn)位左移/右移,CF(進(jìn)位)參與循環(huán)。操作數(shù)是通用寄存器 或者存儲(chǔ)器操作數(shù),位移數(shù)為1或?yàn)镃L。轉(zhuǎn)移指令注意:由于代碼段可分為多個(gè)段,所以根據(jù)轉(zhuǎn)移時(shí)是否重置代碼段寄存器CS內(nèi)容,可分為 段內(nèi)轉(zhuǎn)移和段間轉(zhuǎn)移。段內(nèi)轉(zhuǎn)移僅重置IP的轉(zhuǎn)移,轉(zhuǎn)移后指令仍在同一代碼段中。段間轉(zhuǎn) 移重置CS,所以轉(zhuǎn)移后繼續(xù)執(zhí)行的指令在另一個(gè)段中。JMP標(biāo)號(hào):無(wú)條件跳轉(zhuǎn)到標(biāo)號(hào)位置執(zhí)行,段內(nèi)直接轉(zhuǎn)移指令。地址差用一個(gè)字節(jié)表示為短 轉(zhuǎn)移,用一個(gè)字表示為近轉(zhuǎn)移。JMP通用寄存器

9、/存儲(chǔ)單元:無(wú)條件段間間接轉(zhuǎn)移指令,操作數(shù)給定的是目標(biāo)地址處。JMP FAR PTR標(biāo)號(hào):無(wú)條件段間直接轉(zhuǎn)移指令,她的具體動(dòng)作是把指令中包含的目標(biāo)地址的 段值和偏移分別置茹CS和IP。JMP操作數(shù):無(wú)條件段間間接轉(zhuǎn)移指令,操作數(shù)是雙字存儲(chǔ)單元,給定目標(biāo)地址,低字節(jié)送 IP,高字節(jié)送CS。條件轉(zhuǎn)移指令:所有的條件轉(zhuǎn)移指令都是段內(nèi)轉(zhuǎn)移。她是由J加上相應(yīng)的含義字母組合成。 有符號(hào)數(shù)關(guān)系G (大于),E (等于),L (小于);無(wú)符號(hào)數(shù)關(guān)系A(chǔ) (高于)、E(等于)和 B (低于);字母N表示“不”:NB (不小于),NE (不等于)。循環(huán)指令 LOOP標(biāo)號(hào):她使寄存器CX減1,若結(jié)果不等于0則轉(zhuǎn)到標(biāo)號(hào),否則順序執(zhí)行LOOP指令后 的指令。最多循環(huán)65536次。LOOPE/LOOPZ標(biāo)號(hào):等于/全零循環(huán)指令。CX的值減1,如果結(jié)果不等于0,并且ZF(0

溫馨提示

  • 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)論