常用的jcc指令表
 
1.修改eip的指令
1)jmp
寄存器EIP的值为程序将要执行的下一条指令的地址;
jcc指令本质上是修改EIP的值;
不能用mov指令直接修改eip的值,如果想修改eip的值需要用专用的指令,例如jmp;
 
格式:jmp r/imm
 
2)call
和jmp差不多,也是修改eip的值;
不同点是:call会同时将下一行指令的地址压入栈顶;
 
格式:call r/imm
 
3)ret
ret用来跳转到call后面一条指令处;
相当于pop eip;
 
2.比较指令
比较指令用来修改标志寄存器的值,但不会修改比较的数的值;
比较指令经常和条件跳转指令搭配使用;
 
1)cmp
格式:cmp r/m,r/m/imm
注意:逗号两边不能同时为内存地址;
作用:比较两个操作数,相当于sub指令,相减的结果不保存到第一个操作数中;
    但是会根据结果修改相关标志寄存器的值;
常用:通过观察cmp执行后zf的值,判断两个数是否相等;
 
2)test
格式:test r/m,r/m/imm
作用:两个数做and运算,不保存结果,但根据结果修改标志寄存器;
常用:
    test eax,eax;可以查看zf标志位,如果为1则eax的值为0;

jcc的更多相关文章

  1. 汇编条件判断整理(JCC,CMP/TEST的实现)

    比较的实现 我们知道CMP是比较两个寄存器内容的指令,但这是如何实现的? 当执行到CMP指令的时候会读取这两个寄存器的内容,并加以减法运算,结果本身不保留,并按照结果设置符号位(属算术运算). CMP ...

  2. 【分支结构】Jcc 的一些助记

    eax > ebx OF=0 SF=0 ZF=0 AF=0 PF=0 CF=0 eax = ebx OF=0 SF=0 ZF=1 AF=0 PF=1 CF=0 eax < ebx OF=0 ...

  3. JCC 指令

    JCC跳转指令 JCC指条件跳转指令,CC就是指条件码. JCC指令 中文含义 英文原意 检查符号位 典型C应用 JZ/JE 若为0则跳转:若相等则跳转 jump if zero;jump if eq ...

  4. 针对JCC指令练习的堆栈图

    堆栈图,主要目的就是练习一下JCC指令的熟练度,供参考 版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明.2019-09-10,23:41:41.作者By-----溺心与沉浮----博客园 ...

  5. 汇编之JCC指令

    版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明.2019-09-06,21:59:16.作者By-----溺心与沉浮----博客园 JCC指令决定它跳不跳转跟别的没关系,只跟EFLAG标 ...

  6. Spring Boot连接DB2查询结果时报错“java.lang.AbstractMethodError: com.ibm.db2.jcc.t4.b.isValid(I)Z”的解决办法

    关于在maven项目中如何添加DB2的坐标的详细,见:https://www.cnblogs.com/zifeiy/p/7918554.html Spring Boot项目中的application. ...

  7. Intel 8086 标志寄存器及JCC指令表

    汇编 JCC指令表 JCC指条件跳转指令,CC就是指条件码. JCC指令 中文含义 英文原意 检查符号位 典型C应用 JZ/JE 若为0则跳转:若相等则跳转 jump if zero;jump if ...

  8. 汇编 JCC指令表

    JCC指令 中文含义 英文原意 检查符号位 典型c应用 JZ/JE 若为0则跳转:若相等则跳转 jump if zero;jump if equal ZF=1 if (i == j);if (i == ...

  9. 【reverse】逆向6 JCC

    [reverse]逆向6 JCC 前言 我们之前学习的时候讲了,eip寄存器存储的是当前(即将执行的语句的) 指向地址 而我们之前提到的下断点(F2),就和我们编程中的下断点一样,执行到某句汇编指令然 ...

随机推荐

  1. PC端判断屏幕宽度到达手机宽度的时候,直接跳转手机页面

    <script> // //判断屏幕宽度到达手机宽度的时候,直接跳转手机页面 // window.addEventListener("resize", function ...

  2. python 基础(十八)--shutil模块

    shutil模块 shutil.copyfileobj(src,dst):只拷贝文件内容,需要open文件:目标文件不存在时创建,存在时覆盖 shutil.copyfileobj(open('old. ...

  3. 【原创】大数据基础之Kudu(6)kudu tserver内存占用统计分析

    kudu tserver占用内存过高后会拒绝部分写请求,日志如下: 19/06/01 13:34:12 INFO AsyncKuduClient: Invalidating location 34b1 ...

  4. golang(7):文件读写 & json & 错误处理

    终端读写 操作终端相关文件句柄常量 os.Stdin // 标准输入 os.Stdout // 标准输出 (输出到终端) os.Stderr // 标准错误输出 (输出到终端) fmt 常见用法 fm ...

  5. JavaScript例子1-给网页中所有<p>元素添加onclick事件

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  6. git 查看当前仓库地址以及设置新的仓库地址

    1.查看当前仓库地址 git remote show origin 2.设置新的仓库地址 1.先登录 gitlab 查看当前仓库地址: 执行修改地址命令 git remote set-url orig ...

  7. 深入探讨java的类加载器

    类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一.它使得 Java 类可以被动态加载到 Java 虚拟机中并执行.类加载器从 JDK 1.0 就出现了,最初是为了满足 Ja ...

  8. JS的 delete操作符 删除对象属性

    JS如何删除对象中的某一属性 var obj={ name: 'zhagnsan', age: 19 } delete obj.name //true typeof obj.name //undefi ...

  9. Vue访问权限

    设置权限 <script> export default { created(){ if(this.$store.state.userStore.role !== 'manager'){ ...

  10. a标签 href不跳转 禁止跳转

    当页面中a标签不需要任何跳转时,从原理上来讲,可分如下两种方法: 标签属性href,使其指向空或不返回任何内容.如: <a href="javascript:void(0);" ...