当前位置: 首页 > news >正文

知识产权教育平台网站开发总结网站开发模板教务管理

知识产权教育平台网站开发总结,网站开发模板教务管理,做推广的网站那个好,长春seo搜索排名什么是标志寄存器? 标志寄存器: flag寄存器16位。 这个标志寄存器并不是完全占满16位,它总共就有9位地址被用。 EFL(Extended Flags Register)是指 扩展标志寄存器,它是x86架构中的一部分,用于存储处理器…

什么是标志寄存器?

标志寄存器: flag寄存器16位。 这个标志寄存器并不是完全占满16位,它总共就有9位地址被用。

EFL(Extended Flags Register)是指 扩展标志寄存器,它是x86架构中的一部分,用于存储处理器的标志位,用于反应最近一次算数运算,逻辑运算和比较操作的结果。 EFL寄存器中的标志位用于决定条件调整和其他控制操作。

上面图有俩部分,第一个部分是标志位的状态区域, 下面EFL 是寄存器的16进制值。

EFL标志寄存器各个位说明

CF (carry flag, 进位标志):

用于表示跨字节加法产生进位或减法发生借位。比如: 当前加法运算的结果超过最大能表示的数据, 或减法中减数小于被减数发生借位,CF==1;

我们打开OllyDbg来尝试修改这个值。

我们来验证错位的情况,就是我们尝试减法错位的情况。

首先先设置EAX 的值为1   :  执行  MOV EAX, 1, F8执行后可以看到值被修改。

然后我们双击右侧的EFL寄存器,弹框后直接修改EFL的标志寄存器值为0,来验证CF

这里可以看到EFL 值为0,上面CF的值也是0

我们执行一次减法语句: SUB EAX, 2  执行后我们应可以看到 C 这个对应的值变成1,说法发生错位了。

上面我们可以看到C标志位已经变成了1. 进位场景这里就不截图了,情况是一样的。

PF (Parity Flag 奇偶标志)

当前运算结果的二进制数据中1的个数是偶数PF 会被设置成1, 否则被设置成0

我来验证下偶数的情况

首先将EAX 设置成1, 然后将EFL标志寄存器设置位0. (设置过程后面我就不截图了,大家搞过几遍应该都熟悉了)

上面图中我们可以看到EAX的值是,然后P 位置是0.  我们去执行 ADD EAX 2 语句,那么本次运行结果就是3, 转成进制就是 0011. 就是偶数个数的1. 我们应该可以看到P位置变成1. 

上面图中我们可以看到符合预期,奇数情况一样。

AF (Auxiliary Carry Flag 辅助进位标志)

如果单个字节内低四位和高四位有进位或借位,就会发生AF 辅助进位标志被设置成1。

低四位进位验证

进位验证  0000 1111 + 0000 0001 = 0001 0000

mov eax, 0x0F

双击EFL设置为0

add eax, 1

备注: 这个是单个字节内发生的进位,

高四位错位

0001 0000 - 0001 = 1111

mov eax, 0x10

双击EFL标志寄存器,弹框后设置为0

sub eax, 1

可以看到AF 辅助进位标记被设置成了1. 

到这里如果你注意到我上面的描述, "AF 是字节内的高四位和低四位发生进位就会改变AF标记“,并且去做了测试,你就发现32位程序中,除了最低位字节外,其他字节的高四位和低四位发生借位或进位AF是不会发生变化的。 这个我去查了下AI,它的回复如下

这个后面还可以在深入的探究下。

ZF (Zero Flag 零标志)

当前运算结果是否为0 ,如果是ZF标记就会被设置成1,否则会被设置成0;

mov eax, 1

手动设置EFL 为0

xor eax, 1

mov eax, 1

手动设置EFL 为0

sub eax,1

这里可以看到zf 标记都被设置成1了。

这里有一个问题,我现在还不是很懂,为啥我通过执行imul  eax, 0语句后,eax的值也变成0了,但是 ZF标记始终没有被设置成1.这个有了解的朋友可以在评论区留言指导下,或者后面我学完了如果理解了,我也会这里再次更正下。

SF(Sign Falg 符号标志)

符号位如果是1则 SF 被设置成1

mov eax, 0

手动设置EFL  值为0

sub al, 0x80

TF(Trap Flag 陷阱标志)

陷阱标志(TF)是 x86 处理器中的一个调试标志位,用于控制处理器在每条指令执行后触发中断,从而实现单步执行功能,广泛应用于程序调试和异常处理。

DF(Direction Flag )

这个我理解就有的指令执行的方向,比如 之前学习的ESI 源索引寄存器和 EDI 目的索引寄存器操作方向可以通过DF来控制, 

DF=0:正向操作(ESI/EDI 递增,默认状态)

DF=1:逆向操作(ESI/EDI 递减)

OF(Overflow Flag 溢出标记)

顾名思义,就是操作结果溢出了变量最大的可容纳的值就会设置OF为1

二进制: 0111 1111 1111 1111 1111 1111 1111 1111 + 1 

十六进制: 0x7FFFFFFF + 1

mov eax, 0x7FFFFFFF

手动设置EFL为0

add eax, 1

这里可以看到,OF被设置成了1

哈哈哈,挑战失败了, 本来准备一天看完孙老师的全部课程, 谁知道这一章节中验证和理解每一个Flag还是比较耗费时间的, 大家如果发现理解上有问题,还请指出来,我将十分感谢。

上一篇:汇编学习之《扩展指令指针寄存器》

下一篇:汇编学习之《段寄存器》

http://www.dtcms.com/a/460520.html

相关文章:

  • 天律网站建设上班没事做看什么网站
  • 网站开发 搜索wordpress建站阿里云
  • 平面设计专用网站建一个pc网站需要多少钱
  • 网站怎样建立数据库连接网络营销理论与实务
  • 网站建设报价方案.xlswordpress single页面
  • 网站建设细化流程咸宁商城网站建设
  • 网站建设岗位招聘犀牛建设网站
  • 网站出现的的问题视觉中国网站
  • 一个网站做两个优化可以做吗做企业网站后期还需要费用吗
  • 网站服务器是干什么的专业网站建站公司
  • 网站架构演变流程苏州前几天网站建设
  • 蓝色系网站竞价排名点击
  • 怎么给网站做百度坐标定位做网站需注重的几点
  • 开题报告风景区网站开发北京网站维护浩森宇特
  • 网站建设业务好跑吗wordpress工作室
  • 无锡网站 制作中山手机网站建设哪家好
  • 网站建设核电网络项目
  • 网站后期维护方案漯河网站建设漯河
  • 网页和网站的不同苏州公司名称查询
  • a站是指哪个网站学校门户网站建设说明
  • 广州网站建设商家理卖做各视频网站的会员
  • 汕头建设企业网站广元做开锁网站
  • 工业和信息化部网站备案系统是什么意思程序员免费自学网站
  • 游戏类网站备案多语言网站怎么做
  • 深圳龙岗网站建设公司哪家好中国做网站最好的企业
  • 校园二手网站开发赣州网上商城系统
  • wordpress音乐站源码网站建设基础摘要
  • 服装如何做微商城网站怎样建网站买东西
  • 网站备案类型及条件申请商标注册
  • 1年网站视频网站能备案吗