常用的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;

最新文章

  1. 如何用Visual Studio 2013 (vs2013)编写C语言程序 (转)
  2. Can’t Activate Reporting Services Service in SharePoint
  3. 第1周 支路变量、元件、KCL和KVL
  4. libsvm Minist Hog 手写体识别(源码文件)
  5. Jmeter使用指南
  6. hdu 1049 Climbing Worm
  7. js屏弊错误
  8. 一个关于poi导出的API
  9. OC弱语法
  10. 我的Python成长之路---第六天---Python基础(20)---2016年2月20日(晴)
  11. mssql server 函数大全
  12. Exchange无法发送邮件 未找到匹配的连接器来路由外部收件人解决办法
  13. Oracle的安装问题
  14. JS中this指向问题相关知识点及解析
  15. Java框架spring 学习笔记(八):注入对象类型属性
  16. Java学习笔记之——多态、抽象
  17. windows配置Java环境变量
  18. Spark RDD Action 简单用例(一)
  19. leecode第五十四题(螺旋矩阵)
  20. day 51

热门文章

  1. django初步了解2
  2. Elastic Search中Query String常见语法
  3. windows环境下安装selenium+python
  4. Mysql-Sqlalchemy-ORM-many_to_many
  5. 怎样使用 vue-cli ( Vue 脚手架 )
  6. linq to sql之Distinct
  7. 基于SQL Server日志链查看数据库insert/update/delete操作(一)
  8. 【转】CnBlogs自定义博客样式
  9. vue 项目中如何在页面刷新的状态下保留数据
  10. 关于SQL查询某年数据 和DATEPART 函数的使用