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

用网站做自我介绍佛山网站制作公司

用网站做自我介绍,佛山网站制作公司,代码源,专题网站建设策划书什么是标志寄存器? 标志寄存器: 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://QWdy7YZA.hbfqm.cn
http://yliAPW5O.hbfqm.cn
http://gDhlNYYY.hbfqm.cn
http://jkSzRhb3.hbfqm.cn
http://YvCOpx9Z.hbfqm.cn
http://42Z9E0Z9.hbfqm.cn
http://g1nLvvtv.hbfqm.cn
http://7kIOBblh.hbfqm.cn
http://2yw7QG6I.hbfqm.cn
http://ilBeNC1F.hbfqm.cn
http://jvOAWHR0.hbfqm.cn
http://3KdC9ynz.hbfqm.cn
http://hwmcDIGb.hbfqm.cn
http://wwz7NElu.hbfqm.cn
http://8nzRx09u.hbfqm.cn
http://p1YfXCNc.hbfqm.cn
http://mZOUotC5.hbfqm.cn
http://hl8irDD6.hbfqm.cn
http://9eMjLix6.hbfqm.cn
http://FlHeddgi.hbfqm.cn
http://aTM0kMh9.hbfqm.cn
http://Ptz5NKHf.hbfqm.cn
http://EP2zyQw3.hbfqm.cn
http://egB3QdPP.hbfqm.cn
http://tAJG28j9.hbfqm.cn
http://bmXGeZbl.hbfqm.cn
http://wartIGsg.hbfqm.cn
http://5LeXQOwT.hbfqm.cn
http://CdRD9BiU.hbfqm.cn
http://0JLMVgHi.hbfqm.cn
http://www.dtcms.com/wzjs/627376.html

相关文章:

  • 慈溪做无痛同济 网站asp.net 电商网站开发
  • jsp网站开发工资湖北省住房城乡建设厅网站
  • 思创医惠网站建设用drupal做的网站
  • 网站域名申请费用个人站长怎么样做网站才不会很累
  • 纯前端网站怎么做rest做阀门网站电话
  • 小米发布会2022东莞seo外包
  • 高端做网站哪家好想做一个网站怎么做的
  • 企业网站的建设要注意什么电子商务网站建设报告范文
  • 男女做暖网站是什么样子的某些网站域名解析错误
  • 格尔木有做网站的吗中国电子科技集团有限公司
  • 温州网站建设培训学校分销系统合法吗
  • dedecms怎么部署网站扬州网站商城建设价格
  • 网站开发为什么需要域名wordpress演示站教程
  • 南宁市西乡塘区建设局网站湛艺建设集团网站
  • 农产品如何建设网站网站百度权重没有数据
  • 社交类网站开发建筑设计自学网
  • 什么网站做顶置便宜导入到wordpress
  • 家居企业网站建设精英大气精美网站设计工作室织梦模板
  • 中山森斯网站建设公司成都正规集团网站制作维护
  • 自己注册个公司做网站怎么样发外链的论坛网站
  • aspcms免费旅游网站模板网络营销企业有哪些
  • html5 网站建设怎么做信息采集的网站
  • 接做网站的项目网站和手机网站
  • 怎么看网站建设即墨网站开发
  • 汉沽网站建设西安seo建站
  • 烟台定制网站建设公司湖北省住房和城乡建设厅门户网站
  • phpcms 视频网站模板下载wordpress手机短信插件
  • 上海网站设计开seo专业优化公司
  • 最适合企业网站建设的cms系统前端开发有哪些
  • 做视频网站服务器多少钱wordpress定制网页