當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
学 Win32 汇编[28] - 跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等...
生活随笔
收集整理的這篇文章主要介紹了
学 Win32 汇编[28] - 跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
跳轉指令分三類:
一、無條件跳轉: JMP;
二、根據 CX、ECX 寄存器的值跳轉: JCXZ(CX 為 0 則跳轉)、JECXZ(ECX 為 0 則跳轉);
三、根據 EFLAGS 寄存器的標志位跳轉, 這個太多了.
根據標志位跳轉的指令:
JE ;等于則跳轉 JNE ;不等于則跳轉JZ ;為 0 則跳轉 JNZ ;不為 0 則跳轉JS ;為負則跳轉 JNS ;不為負則跳轉JC ;進位則跳轉 JNC ;不進位則跳轉JO ;溢出則跳轉 JNO ;不溢出則跳轉JA ;無符號大于則跳轉 JNA ;無符號不大于則跳轉 JAE ;無符號大于等于則跳轉 JNAE ;無符號不大于等于則跳轉JG ;有符號大于則跳轉 JNG ;有符號不大于則跳轉 JGE ;有符號大于等于則跳轉 JNGE ;有符號不大于等于則跳轉JB ;無符號小于則跳轉 JNB ;無符號不小于則跳轉 JBE ;無符號小于等于則跳轉 JNBE ;無符號不小于等于則跳轉JL ;有符號小于則跳轉 JNL ;有符號不小于則跳轉 JLE ;有符號小于等于則跳轉 JNLE ;有符號不小于等于則跳轉JP ;奇偶位置位則跳轉 JNP ;奇偶位清除則跳轉 JPE ;奇偶位相等則跳轉 JPO ;奇偶位不等則跳轉
跳轉相關的標志位:
| 溢 出 | 符 號 | 零 | 未 用 | 輔 助 | 未 用 | 奇 偶 | 未 用 | 進 位 |
JMP 測試
; 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;測試結果應該是: ;1 ;4 ;以下都應該是這樣.
JE 測試
; 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 測試
; 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 測試
; 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 測試
; 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 測試
; 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 測試
; 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 測試
; 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 測試
; 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 測試
; 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
總結
以上是生活随笔為你收集整理的学 Win32 汇编[28] - 跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 超级课程表导入课程显示服务器繁忙,超级课
- 下一篇: Android_多渠道打包_混淆