



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、匯編語言常用指令大家在做免殺或者破解軟件的時候經(jīng)常要用到匯編指令,本人整理出了常用的 希望對大家有幫助!數(shù)據(jù)傳送指令MOV:寄存器之間傳送注意,源和目的不能同時是段寄存器;代碼段寄存器CS不能作為目的; 指令指針I(yè)P不能作為源和目的。立即數(shù)不能直接傳送段寄存器。源和目的操作數(shù)類型要一 致;除了串操作指令外,源和目的不能同時是存儲器操作數(shù)。XCHG交換指令:操作數(shù)可以是通用寄存器和存儲單元,但不包括段寄存器,也不能同時是 存儲單元,還不能有立即數(shù)。LEA 16位寄存器 存儲器操作數(shù)傳送有效地址指令:必須是一個16位寄存器和存儲器操 作數(shù)。LDS 16位寄存器 存儲器操作數(shù) 傳送存儲器操作數(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位,符號SF,零ZF,輔助進位AF,奇偶PF,進位CF傳送到AH 指定的位。不影響標(biāo)志位。SAHF:與上相反,把AH中的標(biāo)志位傳送回標(biāo)志寄存器。PUSHF :把標(biāo)志寄存器內(nèi)容壓入棧頂。POPF:把棧頂?shù)囊粋€字節(jié)傳送到標(biāo)志寄存器中。CLC:進位位清零。STC:進位位為1。CMC:進位位取反。CLD:使方向標(biāo)志DF為零,在執(zhí)行串操作中,使地址按遞增方式變化。STD:
3、 DF 為 1。CLI:清中斷允許標(biāo)志IF。Cpu不相應(yīng)來自外部裝置的可屏蔽中斷。STI: IF 為 1。加減運算指令 注意:對于此類運算只有通用寄存器和存儲單元可以存放運算結(jié)果。如果參與運算的操作 數(shù)有兩個,最多只能有一個存儲器操作數(shù)并且它們的類型必須一致。ADD。ADC:把進位CF中的數(shù)值加上去。INC:加1指令SUB。SBB:把進位CF中數(shù)值減去。DEC:減1指令。NEG操作數(shù):取補指令,即用0減去操作數(shù)再送回操作數(shù)。CMP:比較指令,完成操作數(shù)1減去操作數(shù)2,結(jié)果不送操作數(shù)1,但影響標(biāo)志位??筛鶕?jù) ZF (零)是否被置1判斷相等;如果兩者是無符號數(shù),可根據(jù)CF判斷大小;如果兩者是有 符
4、號數(shù),要根據(jù)SF和OF判斷大小。乘除運算指令MUL操作數(shù):無符號數(shù)乘法指令。操作數(shù)不能是立即數(shù)。操作數(shù)是字節(jié)與AL中的無符號數(shù) 相乘,16位結(jié)果送AX中。若字節(jié),則與AX乘,結(jié)果高16送DX,低16送AX。如乘積高半 部分不為零,則CF、OF為1,否則為0。所以CF和OF表示AH或DX中含有結(jié)果的有效數(shù)。 IMUL操作數(shù):有符號數(shù)乘法指令。基本與MUL相同。DIV操作數(shù):被除數(shù)是在AX (除數(shù)8位)或者DX和AX (除數(shù)16位),操作數(shù)不能是立即 數(shù)。如果除數(shù)是0,或者在8(16)位除數(shù)時商超過8(16)位,則認為是溢出,引起0號 中斷。IDIV:有符號除法指令,當(dāng)除數(shù)為0,活著商太大,太?。?/p>
5、字節(jié)超過127,127字 超過32767,32767)時,引起0號中斷。符號擴展指令CBW,CWD:把AL中的符號擴展到寄存器AH中,不影響各標(biāo)志位。CWD則把AX中的符號擴 展到DX,同樣不影響標(biāo)志位。注意:在無符號數(shù)除之前,不宜用這兩條指令,一般采用(OR 清高8位或高16位。邏輯運算指令與位移指令注意:只能有一個存儲器操作數(shù);只有通用寄存器或存儲器操作數(shù)可作為目的操作數(shù),用于 存放結(jié)果;操作數(shù)的類型必須一致。NOT:取反,不影響標(biāo)志位。AND操作數(shù)1操作數(shù)2:操作結(jié)果送錯作數(shù)1,標(biāo)志CF (進位)、OF (溢出)清0,PF (奇 偶)ZF (0標(biāo)志)SF (符號)反映運算結(jié)果,AF (輔
6、助進位)未定義。自己與自己AND值 不變,她主要用于將操作數(shù)中與1相與的位保持不變,與0相與清0。(都為1時為1)OR操作數(shù)1操作數(shù)2:自己與自己OR值不變,CF (進位)、OF (溢出)清0,PF (奇偶) ZF (0標(biāo)志)SF (符號)反映運算結(jié)果,AF (輔助進位)未定義。她使用于將若干位置1:與1相或為1,保持不變的位與0相或。(都為0時為0)XOR操作數(shù)1操作數(shù)2:自己與自己異或結(jié)果為0,標(biāo)志CF (進位)、OF (溢出)清0, PF (奇偶)ZF(0)SF(符號)反映運算結(jié)果,AF(輔助進位)未定義。主要用于將若干位取 反的操作:與1異或取反,與0異或保持不變。(相同為0,不同為1
7、)TEST操作數(shù)1操作數(shù)2:測試指令,和AND相同,但結(jié)果不送操作數(shù)1,各標(biāo)志位同AND 操作。位移指令SAL/SHL操作數(shù) 1或CL:算術(shù)左移與邏輯左移進行相同的動作,操作數(shù)是通用寄存器或 者存儲器操作數(shù),位移數(shù)為1或為CL;最高位移CF(進位),右邊用0補位。左移一次相 當(dāng)源操作數(shù)乘2。SAR操作數(shù) 1或CL:算術(shù)右移,位移數(shù)為1或為CL;操作數(shù)是通用寄存器或者存儲器 操作數(shù),左符號位保持不變,移出最低位進CF (進位)。相當(dāng)源操作數(shù)除2。SHR操作數(shù)1或CL :邏輯右移,操作數(shù)是通用寄存器或者存儲器操作數(shù),位移數(shù)為1或 為CL;左邊用0補足,移出的最低位進CF(進位)對于無符號數(shù),右移一
8、位相當(dāng)于除2。 ROL/ROR操作數(shù)1或CL:不帶進位左移/右移,操作數(shù)是通用寄存器或者存儲器操作數(shù), 位移數(shù)為1或為CL。RCL/RCR操作數(shù)1或CL:帶進位左移/右移,CF(進位)參與循環(huán)。操作數(shù)是通用寄存器 或者存儲器操作數(shù),位移數(shù)為1或為CL。轉(zhuǎn)移指令注意:由于代碼段可分為多個段,所以根據(jù)轉(zhuǎn)移時是否重置代碼段寄存器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í)行的指令在另一個段中。JMP標(biāo)號:無條件跳轉(zhuǎn)到標(biāo)號位置執(zhí)行,段內(nèi)直接轉(zhuǎn)移指令。地址差用一個字節(jié)表示為短 轉(zhuǎn)移,用一個字表示為近轉(zhuǎn)移。JMP通用寄存器
9、/存儲單元:無條件段間間接轉(zhuǎn)移指令,操作數(shù)給定的是目標(biāo)地址處。JMP FAR PTR標(biāo)號:無條件段間直接轉(zhuǎn)移指令,她的具體動作是把指令中包含的目標(biāo)地址的 段值和偏移分別置茹CS和IP。JMP操作數(shù):無條件段間間接轉(zhuǎn)移指令,操作數(shù)是雙字存儲單元,給定目標(biāo)地址,低字節(jié)送 IP,高字節(jié)送CS。條件轉(zhuǎn)移指令:所有的條件轉(zhuǎn)移指令都是段內(nèi)轉(zhuǎn)移。她是由J加上相應(yīng)的含義字母組合成。 有符號數(shù)關(guān)系G (大于),E (等于),L (小于);無符號數(shù)關(guān)系A(chǔ) (高于)、E(等于)和 B (低于);字母N表示“不”:NB (不小于),NE (不等于)。循環(huán)指令 LOOP標(biāo)號:她使寄存器CX減1,若結(jié)果不等于0則轉(zhuǎn)到標(biāo)號,否則順序執(zhí)行LOOP指令后 的指令。最多循環(huán)65536次。LOOPE/LOOPZ標(biāo)號:等于/全零循環(huán)指令。CX的值減1,如果結(jié)果不等于0,并且ZF(0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合資企業(yè)合同范本
- saas代理合同范本
- 南山鋁業(yè)合同范本
- 專業(yè)閥體采購合同范本
- 單位購柴油合同范例
- 和孩子簽合同范本
- 包裝禮盒合同范本
- 合同范例法院起訴
- 農(nóng)村木炭出售合同范本
- 變更購房合同范本
- 北京大學(xué)- DeepSeek如何提示詞工程和落地場景分析
- (完整版)第五章養(yǎng)殖場環(huán)境保護
- 2025年江蘇省南京市鍋爐壓力容器檢驗研究院招聘20人歷年高頻重點模擬試卷提升(共500題附帶答案詳解)
- 婦女保健知識講座課件
- 祖國版圖知識主題班會
- 上海2025年上海商學(xué)院招聘筆試歷年參考題庫附帶答案詳解-1
- 2025年上半年東方電氣集團科學(xué)技術(shù)研究院限公司公開招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 2024年水利安全員(B證)考試題庫-上(單選題)
- 2024年蘇州經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 資產(chǎn)支持專項計劃法律意見書
- 工期保障措施
評論
0/150
提交評論