鱼C论坛

 找回密码
 立即注册
查看: 1795|回复: 4

对于监测点11.4中标志位的一些疑问

[复制链接]
发表于 2014-5-26 10:43:11 | 显示全部楼层 |阅读模式
1鱼币
本帖最后由 decoder 于 2014-5-26 10:49 编辑

                  书中的代码:
      MOV AX,0
      PUSH AX
      POPF
      MOV AX,0FFF0H
      ADD AX,10H        ;这里不就是FFF0+10H吗  难道我计算有误?
      PUSHF
      POP AX            





0  0  0  0  of df if tf sf zf 0  af 0  pf 0  cf
                                                                            0  0  0  0  0  0  *  *  0  1  0  *  0  1  0  1
      AND AL,11000101B
      AND AH,00001000B
      对于16位寄存器来说
            FFF0H+10H=10000H毫无疑问产生了进位,CF值为1     PF因ax为0而=0  SF只看最高位,ax的最高位为0所以SF=0  ZF毫无疑问为1,但10000h这个数值ax存放不下,是不是应该产生溢出呢?我用debug调试去查看结果很意外,开始以为答案有误,可是答案没问题,这个数值对于16位寄存器来说,不管是有符号数还是无符号数add指令肯定会影响这些标志位,但是既然有溢出(也许这不是溢出,对于溢出这个概念,书中的解释就是8位寄存器放不下的数据就会让of值为1,同理,16位寄存器放不下的数据也应该会产生溢出,但是of在这个操作后为什么会是0呢),谁能解释一下这个疑问?




想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-5-26 11:18:20 | 显示全部楼层
这个监测点中我忽略了fff0要把它看作是有符号数的负数补码,加10h后变为0值不可能有溢出,也就是说-10h+10h=0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-26 11:22:46 From FishC Mobile | 显示全部楼层
楼主会了??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-5-26 11:55:01 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-11 11:20:38 | 显示全部楼层
{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-19 00:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表