学 Win32 汇编[28]
来源:互联网 发布:杀人软件下载 编辑:程序博客网 时间:2024/05/18 14:11
跳转指令分三类:
一、无条件跳转: JMP;
二、根据 CX、ECX 寄存器的值跳转: JCXZ(CX 为 0 则跳转)、JECXZ(ECX 为 0 则跳转);
三、根据 EFLAGS 寄存器的标志位跳转, 这个太多了.
根据标志位跳转的指令:
跳转相关的标志位:
11 10 9 8 7 6 5 4 3 2 1 0 OF DF IF TF SF ZF AF PF CF 溢
出 符
号零未
用辅
助未
用奇
偶未
用进
位
JMP 测试
JE 测试
JZ 测试
JS 测试
JC 测试
JO 测试
JA 测试
JG 测试
JP 测试
JECXZ 测试
一、无条件跳转: 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.incinclude kernel32.incinclude masm32.incinclude debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codemain proc PrintText '1' jmp @F PrintText '2' PrintText '3'@@: PrintText '4' retmain endpend main;测试结果应该是:;1;4;以下都应该是这样.
JE 测试
; Test28_2.asm;.386.model flat, stdcallinclude windows.incinclude kernel32.incinclude masm32.incinclude debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codemain proc PrintText '1' mov eax, 123 cmp eax, 123 je @F PrintText '2' PrintText '3'@@: PrintText '4' retmain endpend main
JZ 测试
; Test28_3.asm;.386.model flat, stdcallinclude windows.incinclude kernel32.incinclude masm32.incinclude debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codemain proc PrintText '1' xor eax, eax jz @F PrintText '2' PrintText '3'@@: PrintText '4' retmain endpend main
JS 测试
; Test28_4.asm;.386.model flat, stdcallinclude windows.incinclude kernel32.incinclude masm32.incinclude debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codemain proc PrintText '1' xor eax, eax dec eax js @F PrintText '2' PrintText '3'@@: PrintText '4' retmain endpend main
JC 测试
; Test28_5.asm;.386.model flat, stdcallinclude windows.incinclude kernel32.incinclude masm32.incinclude debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codemain proc PrintText '1' mov al, 0FFh add al, 1 jc @F PrintText '2' PrintText '3'@@: PrintText '4' retmain endpend main
JO 测试
; Test28_6.asm;.386.model flat, stdcallinclude windows.incinclude kernel32.incinclude masm32.incinclude debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codemain proc PrintText '1' mov al, -128 sub al, 1 jo @F PrintText '2' PrintText '3'@@: PrintText '4' retmain endpend main
JA 测试
; Test28_7.asm;.386.model flat, stdcallinclude windows.incinclude kernel32.incinclude masm32.incinclude debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codemain proc PrintText '1' mov eax, 22 cmp eax, 11 ja @F PrintText '2' PrintText '3'@@: PrintText '4' retmain endpend main
JG 测试
; Test28_8.asm;.386.model flat, stdcallinclude windows.incinclude kernel32.incinclude masm32.incinclude debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codemain proc PrintText '1' mov eax, 1 cmp eax, -1 jg @F PrintText '2' PrintText '3'@@: PrintText '4' retmain endpend main
JP 测试
; Test28_9.asm;.386.model flat, stdcallinclude windows.incinclude kernel32.incinclude masm32.incinclude debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codemain proc PrintText '1' mov al, 00001110b inc al jp @F PrintText '2' PrintText '3'@@: PrintText '4' retmain endpend main
JECXZ 测试
; Test28_10.asm;.386.model flat, stdcallinclude windows.incinclude kernel32.incinclude masm32.incinclude debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codemain proc PrintText '1' xor ecx, ecx jecxz @F PrintText '2' PrintText '3'@@: PrintText '4' retmain endpend main
阅读全文
0 0
- 学 Win32 汇编[28]
- 学习Win32汇编要学哪些东西
- 学 Win32 汇编[5]: 数据类型与声明
- 学Win32 汇编[2]: 最简单的 Win32 程序
- 学 Win32 汇编[2]: 最简单的 Win32 程序
- 学win32汇编病毒要学什么内容
- 学WIN32汇编,掌握几个必要的流程
- 学Win32 汇编[1]: 选择编辑与编译工具
- 学 Win32 汇编[4]: 使用 Debug 输出测试结果
- 学 Win32 汇编[6]: 伪指令 DUP 与数组
- 学 Win32 汇编[12]: PTR、OFFSET、ADDR、THIS
- 学 Win32 汇编[12]: PTR、OFFSET、ADDR、THIS
- 学 Win32 汇编[1]: 选择编辑与编译工具
- 学 Win32 汇编[16]: 常用寄存器的常规功能
- 学 Win32 汇编[1]: 选择编辑与编译工具
- Win32 汇编
- 学 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 等
- poj 3250
- jsp访问servlet
- (1)冒泡法排序代码(另一个应用是找到第K大的数)
- 卡特兰数公式推导
- BP神经网络模型及梯度下降法
- 学 Win32 汇编[28]
- CSS中的多种选择器和它们的优先级
- 关于mybatis生成插件Generator配置文件中自定义注释
- IO端口和IO内存访问
- PDO防注入原理分析以及使用PDO的注意事项
- Java实现-反转整数
- Dijkstra求单源最短路模板
- codeforce 871D Imbalanced Array
- Codeforces 821 E. Okabe and El Psy Kongroo