EFLAGS寄存器与JCC指令

2023-09-18 19:43:02

EFLAGS寄存器

EFLAGS寄存器有32位,EFLAGS 寄存器的标志位可以通过各种指令进行操作和判断,例如条件分支指令、算术指令和控制指令等。程序可以根据标志位的值来进行条件判断和控制流程,从而实现不同的逻辑和功能。

EFLAGS 寄存器的各个位和标志位含义如下:

  • CF (Carry Flag):进/借位标志位。用于表示某些算术操作或移位操作是否产生了进位或借位。

  • PF (Parity Flag):奇偶标志位。用于表示结果中 1 的个数的奇偶性。

  • AF (Auxiliary Carry Flag):辅助进位标志位。用于表示低 4 位的进位或借位情况。

  • ZF (Zero Flag):零标志位。用于表示操作结果是否为零。

  • SF (Sign Flag):符号标志位。用于表示操作结果的最高有效位(符号位)。

  • TF (Trap Flag):陷阱标志位。用于控制单步执行调试功能。

  • IF (Interrupt Flag):中断标志位。用于控制是否允许中断响应。

  • DF (Direction Flag):方向标志位。用于控制字符串传输指令的方向(正向或反向)。

  • OF (Overflow Flag):溢出标志位。用于表示有符号算术操作是否发生溢出。

  • IOPL (I/O Privilege Level):I/O 特权级。用于管理对 I/O 端口的访问权限。

  • NT (Nested Task Flag):嵌套任务标志位。用于表示当前是否处于嵌套任务的执行环境。

  • RF (Resume Flag):恢复标志位。用于控制中断返回时是否进入恢复处理器状态的过程。

  • VM (Virtual Mode Flag):虚拟模式标志位。用于指示处理器是否处于虚拟模式。

  • AC (Alignment Check):对齐检查标志位。用于控制是否进行内存对齐检查。

  • VIF (Virtual Interrupt Flag):虚拟中断标志位。用于指示当前是否处于虚拟 8086 模式的中断响应中。

  • VIP (Virtual Interrupt Pending):虚拟中断等待标志位。用于指示是否有虚拟中断正在等待响应。

  • ID (ID Flag):识别标志位。用于指示是否支持 CPUID 指令。

目前我们只需要关注下面9个就可以了

  1. CF 进位标志:当算术结果产生进位或者借位的时候被置1
  2. PF 奇偶标志:当算术结果为偶数时被置1
  3. AF 辅助进位标志:算术操作在结果的第三位发生进位或借位则将该标志置1
  4. ZF 零标志:当结果为0时被置1
  5. SF 符号标志:当算术结果为负数时被置1
  6. TF 单步标志 :和调试原理相关
  7. IF 中断标志:和内核有关系
  8. DF 方向标志:会影响MOVS STOS两个串操作指令中EDIESI的值
  9. OF 溢出标志:当有符号数的数值超过最大范围时被置1

JCC指令

JCC 指令,一般会跟在 cmp 指令后面,根据标志位决定是否跳转,cmp指令与jcc指令配合使用完成逻辑跳转

经常使用的也就是JZ,JE,其他的用到了再查即可

JZ/JE:如果ZF=0,也就是两个值相等,就跳转

更多推荐

排序算法:归并排序(递归和非递归)

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关排序算法的相关知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成!C语言专栏:C语言:从入门到精通数据结构专栏:数据结构个人主页:stackY、​目录1.归并排序1.1递归版本代码演示:1.2非递归版本代码演示:测试排序:改正代码1:测试排序:

慢查询SQL如何优化

一.什么是慢SQL?慢SQL指的是Mysql中执行比较慢的SQL,排查慢SQL最常用的方法是通过慢查询日志来查找慢SQL。Mysql的慢查询日志是Mysql提供的一种日志记录,它用来记录Mysql中响应时间超过long_query_time值的sql,long_query_time的默认时间为10s.二.查看慢SQL是

工控机通过Profinet转Modbus RTU网关连接变频器与电机通讯案例

在工业自动化系统中,工控机扮演着重要的角色,它是数据采集、处理和控制的中心。工控机通过Profinet转ModbusRTU网关连接变频器与电机通讯,为工业自动化系统中的设备之间的通信提供了解决方案。工控机通过Profinet转ModbusRTU网关的方式,将Profinet协议转换为ModbusRTU协议,从而实现了工

使用API接口获取商品数据:从入门到实践

一、引言随着电子商务的飞速发展,许多电商平台提供了API接口,允许开发者获取商品数据,以创建各种创新的应用。本文将详细介绍如何使用API接口获取商品数据,并通过代码示例进行演示。二、API接口概述1.API接口定义API(ApplicationProgrammingInterface)接口是一种协议,允许不同的应用程序

计网第五章(运输层)(七)(TCP的连接建立)

目录一、基本概述二、连接建立1.基本任务2.具体实现三、经典问题之为什么不用“两次握手”?一、基本概述在前面的部分提到过,TCP是基于运输连接来传输TCP报文段。所以TCP的连接和释放是每次面向连接的通信过程中必不可少的过程。TCP运输连接分为三个阶段:连接建立、数据传输、释放连接。二、连接建立1.基本任务TCP建立连

苹果短信删除了怎么恢复?3个宝藏方法!

虽然现在有越来越多好用的通讯工具供大家选择,但是短信在我们的日常生活中仍然扮演着重要的角色。比如,银行短信服务可以让我们随时掌握账户中的消费信息、上网购买快递驿站会第一时间将取件码发送到您的手机上……还有很多很多场景都需要用到我们的手机短信。然而,在使用手机时可能会不小心误删一些重要短信,那么这时候该怎么办?大家知道短

Linux下库的入门与制作

库的入门与制作1.库的介绍2.库的制作与使用2.1静态库的制作与使用2.2动态库的制作与使用参考博文:1.Linux中的库2.Linux共享库、静态库、动态库详解1.库的介绍介绍程序函数库可分为3种类型:静态函数库(staticlibraries)、共享函数库(sharedlibraries)、动态加载函数库(dyna

算法竞赛入门【码蹄集新手村600题】(MT1280-1300)C语言

算法竞赛入门【码蹄集新手村600题】(MT1280-1300)C语言目录MT1281N的M次方MT1282Disarium数MT1283区间Disarium数MT1284快乐数MT1285忠实数MT1286忠实数序列MT1287ASCII值MT1288谁在说谎MT1289调和级数不等式MT1290级数MT1291级数I

虚拟DOM与diff算法

虚拟DOM与diff算法snabbdom虚拟DOMdiff算法snabbdom是什么:snabbdom是著名的虚拟DOM库,是diff算法的鼻祖,Vue源码借鉴了snabbdom虚拟DOM是什么:本质上是存在内存里的JavaScript对象作用:用来描述真实DOM的层次结构,真实DOM上的一切属性都能在虚拟DOM上找到

微店商品详情数据接口

微店商城是由北京口袋时尚科技有限公司开发的一款基于微信等社交平台的开店工具,于2011年5月上线。2014年1月,"微店"APP正式上线。微店拥有近9000万小微店主,通过微店和微店店长版两个app,微店已经从小微店主首选的开店工具转型为助力创业者发展兴趣、创立品牌、玩成事业的系统及基础设施。微店商品详情API接口(i

小型网络实验组网

路漫漫其修远兮,吾将上下而求索时隔多日,没有更新,今日一写,倍感教育的乐趣。如果让我每天发无意义的文章,我宁可不发。实验拓扑实验要求(1)内网主机采用DHCP分配IP地址(2)外网主机可以访问内网www.wxy.com的网站(3)外网主机可以通过64.0.0.3访问内网服务器实验配置实验配置由于时间原因,当时并没有将其

热文推荐