| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 693 人关注过本帖
标题:PF & ZF?
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
结帖率:99.34%
收藏
已结贴  问题点数:20 回复次数:5 
PF & ZF?
王爽汇编 11章检测点 关于 标志寄存器的
检测点11.1
下面这个是标准答案:
写出下面每条指令执行后,ZF、PF、SF、等标志位的值。
sub al,al     al=0h        ZF=1        PF=1        SF=0
mov al,1      al=1h        ZF=1        PF=1        SF=0
push ax       ax=1h        ZF=1        PF=1        SF=0
pop bx        bx=1h        ZF=1        PF=1        SF=0
add al,bl     al=2h        ZF=0        PF=0        SF=0
add al,10     al=12h       ZF=0        PF=1        SF=0
mul al        ax=144h      ZF=0        PF=1        SF=0
检测点涉及的相关内容:
ZF是flag的第6位,零标志位,记录指令执行后结果是否为0,结果为0时,ZF=1
PF是flag的第2位,奇偶标志位,记录指令执行后结果二进制中1的个数是否为偶数,结果为偶数时,PF=1
SF是flag的第7位,符号标志位,记录有符号运算结果是否为负数,结果为负数时,SF=1
add、sub、mul、div 、inc、or、and等运算指令影响标志寄存器
mov、push、pop等传送指令对标志寄存器没影响。
======================================================
想不通啊 明明结果al = 1h时 ZF 应该是0啊 PF 也应该是0 啊 为什么恰恰相反?

奇怪的是用debug 写入程序后单步跟踪 显示的标志寄存器还真和他给的答案一样 我晕
那么他指的运行结果究竟是什么? 不是al = 1h?

下面的单步跟踪的 详细过程:
C:\DOCUME~1\ADMINI~1>debug
-a
0C1C:0100 sub al,al
0C1C:0102 mov al,1
0C1C:0104 push ax
0C1C:0105 pop bx
0C1C:0106 add al,bl
0C1C:0108 add al,10
0C1C:010A mul al
0C1C:010C
-t
AX=0000  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0C1C  ES=0C1C  SS=0C1C  CS=0C1C  IP=0102   NV UP EI PL ZR NA PE NC
0C1C:0102 B001          MOV     AL,01
-t
AX=0001  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0C1C  ES=0C1C  SS=0C1C  CS=0C1C  IP=0104   NV UP EI PL ZR NA PE NC
0C1C:0104 50            PUSH    AX
-t
AX=0001  BX=0000  CX=0000  DX=0000  SP=FFEC  BP=0000  SI=0000  DI=0000
DS=0C1C  ES=0C1C  SS=0C1C  CS=0C1C  IP=0105   NV UP EI PL ZR NA PE NC
0C1C:0105 5B            POP     BX
-t
AX=0001  BX=0001  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0C1C  ES=0C1C  SS=0C1C  CS=0C1C  IP=0106   NV UP EI PL ZR NA PE NC
0C1C:0106 00D8          ADD     AL,BL
-t
AX=0002  BX=0001  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0C1C  ES=0C1C  SS=0C1C  CS=0C1C  IP=0108   NV UP EI PL NZ NA PO NC
0C1C:0108 0410          ADD     AL,10
-t
AX=0012  BX=0001  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0C1C  ES=0C1C  SS=0C1C  CS=0C1C  IP=010A   NV UP EI PL NZ NA PE NC
0C1C:010A F6E0          MUL     AL
-t
AX=0144  BX=0001  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0C1C  ES=0C1C  SS=0C1C  CS=0C1C  IP=010C   OV UP EI PL NZ NA PE CY
0C1C:010C 1599CD        ADC     AX,CD99
-

求大牛帮忙解答
搜索更多相关主题的帖子: 寄存器 检测 标志 
2012-09-06 22:57
信箱有效
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1102
专家分:4268
注 册:2012-6-19
收藏
得分:10 
学习。
PF ZF 佩服 折服
2012-09-06 23:17
刘培
Rank: 2
等 级:论坛游民
帖 子:4
专家分:11
注 册:2010-4-19
收藏
得分:10 
标志寄存器我还没学到。。。。。
2012-09-07 02:24
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 2楼 信箱有效
SF 私服?


梅尚程荀
马谭杨奚







                                                       
2012-09-07 09:27
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 3楼 刘培
赶快啊 一起研究~~

梅尚程荀
马谭杨奚







                                                       
2012-09-07 09:27
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
扇自己个耳刮子  我脑袋怎么一根筋呢  
add、sub、mul、div 、inc、or、and等运算指令影响标志寄存器
mov、push、pop等传送指令对标志寄存器没影响。

梅尚程荀
马谭杨奚







                                                       
2012-09-07 10:48
快速回复:PF & ZF?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017967 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved