當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
汇编语言跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
生活随笔
收集整理的這篇文章主要介紹了
汇编语言跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
跳轉(zhuǎn)指令分三類:
一、無條件跳轉(zhuǎn): JMP;
二、根據(jù) CX、ECX 寄存器的值跳轉(zhuǎn): JCXZ(CX 為 0 則跳轉(zhuǎn))、JECXZ(ECX 為 0 則跳轉(zhuǎn));
三、根據(jù) EFLAGS 寄存器的標(biāo)志位跳轉(zhuǎn), 這個(gè)太多了.
根據(jù)標(biāo)志位跳轉(zhuǎn)的指令:
JE ;等于則跳轉(zhuǎn) JNE ;不等于則跳轉(zhuǎn)JZ ;為 0 則跳轉(zhuǎn) JNZ ;不為 0 則跳轉(zhuǎn)JS ;為負(fù)則跳轉(zhuǎn) JNS ;不為負(fù)則跳轉(zhuǎn)JC ;進(jìn)位則跳轉(zhuǎn) JNC ;不進(jìn)位則跳轉(zhuǎn)JO ;溢出則跳轉(zhuǎn) JNO ;不溢出則跳轉(zhuǎn)JA ;無符號(hào)大于則跳轉(zhuǎn) JNA ;無符號(hào)不大于則跳轉(zhuǎn) JAE ;無符號(hào)大于等于則跳轉(zhuǎn) JNAE ;無符號(hào)不大于等于則跳轉(zhuǎn)JG ;有符號(hào)大于則跳轉(zhuǎn) JNG ;有符號(hào)不大于則跳轉(zhuǎn) JGE ;有符號(hào)大于等于則跳轉(zhuǎn) JNGE ;有符號(hào)不大于等于則跳轉(zhuǎn)JB ;無符號(hào)小于則跳轉(zhuǎn) JNB ;無符號(hào)不小于則跳轉(zhuǎn) JBE ;無符號(hào)小于等于則跳轉(zhuǎn) JNBE ;無符號(hào)不小于等于則跳轉(zhuǎn)JL ;有符號(hào)小于則跳轉(zhuǎn) JNL ;有符號(hào)不小于則跳轉(zhuǎn) JLE ;有符號(hào)小于等于則跳轉(zhuǎn) JNLE ;有符號(hào)不小于等于則跳轉(zhuǎn)JP ;奇偶位置位則跳轉(zhuǎn) JNP ;奇偶位清除則跳轉(zhuǎn) JPE ;奇偶位相等則跳轉(zhuǎn) JPO ;奇偶位不等則跳轉(zhuǎn)
跳轉(zhuǎn)相關(guān)的標(biāo)志位:
| 溢 出 | 符 號(hào) | 零 | 未 用 | 輔 助 | 未 用 | 奇 偶 | 未 用 | 進(jìn) 位 |
JMP 測(cè)試
; Test28_1.asm; .386 .model flat, stdcallinclude windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib.code main procPrintText '1'jmp @FPrintText '2'PrintText '3' @@: PrintText '4'ret main endp end main ;測(cè)試結(jié)果應(yīng)該是: ;1 ;4 ;以下都應(yīng)該是這樣.
JE 測(cè)試
; Test28_2.asm; .386 .model flat, stdcallinclude windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib.code main procPrintText '1'mov eax, 123cmp eax, 123je @FPrintText '2'PrintText '3' @@: PrintText '4'ret main endp end main
JZ 測(cè)試
; Test28_3.asm; .386 .model flat, stdcallinclude windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib.code main procPrintText '1'xor eax, eaxjz @FPrintText '2'PrintText '3' @@: PrintText '4'ret main endp end main
JS 測(cè)試
; Test28_4.asm; .386 .model flat, stdcallinclude windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib.code main procPrintText '1'xor eax, eaxdec eaxjs @FPrintText '2'PrintText '3' @@: PrintText '4'ret main endp end main
JC 測(cè)試
; Test28_5.asm; .386 .model flat, stdcallinclude windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib.code main procPrintText '1'mov al, 0FFhadd al, 1jc @FPrintText '2'PrintText '3' @@: PrintText '4'ret main endp end main
JO 測(cè)試
; Test28_6.asm; .386 .model flat, stdcallinclude windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib.code main procPrintText '1'mov al, -128sub al, 1jo @FPrintText '2'PrintText '3' @@: PrintText '4'ret main endp end main
JA 測(cè)試
; Test28_7.asm; .386 .model flat, stdcallinclude windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib.code main procPrintText '1'mov eax, 22cmp eax, 11ja @FPrintText '2'PrintText '3' @@: PrintText '4'ret main endp end main
JG 測(cè)試
; Test28_8.asm; .386 .model flat, stdcallinclude windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib.code main procPrintText '1'mov eax, 1cmp eax, -1jg @FPrintText '2'PrintText '3' @@: PrintText '4'ret main endp end main
JP 測(cè)試
; Test28_9.asm; .386 .model flat, stdcallinclude windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib.code main procPrintText '1'mov al, 00001110binc aljp @FPrintText '2'PrintText '3' @@: PrintText '4'ret main endp end main
JECXZ 測(cè)試
; Test28_10.asm; .386 .model flat, stdcallinclude windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib.code main procPrintText '1'xor ecx, ecxjecxz @FPrintText '2'PrintText '3' @@: PrintText '4'ret main endp end main
總結(jié)
以上是生活随笔為你收集整理的汇编语言跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中关村被骗记(维权全过程)
- 下一篇: 网工压轴题个人总结背诵版 专题二 配