鱼C论坛

 找回密码
 立即注册
查看: 4109|回复: 2

[争议讨论] 我发现mul指令不影响SF,PF标志位!

[复制链接]
发表于 2011-11-26 23:41:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
mov al, 0
add al, 0ch    执行后PF=1,SF=0
mul al           执行后PF=1, SF=0
先说SF: 执行mul后结果在ax中存放,ax=0090h。可能有朋友会想因为ax的最高位是0,所以使得SF为0的。那么就看下面的代码
mov        bl,        2
                add        bl,        80h
                mov        al,        1
                mul bl
如果按照上面的想法,那么这些代码执行后ax=0082h,,sf应该是0,可实际确是1.这个1是在执行add时产生的,mul指令没有改变它。
再说PF:
mov al,        0feh
                mov bl, 0feh
                mov cl, 0
                add cl, 0
                mul        bl
mul指令执行后ax=0FC04h,如果mul指令对PF位有影响的话,那么不管是看al,还是看ax,1的个数都是奇数,理应使PF由1变为0,而实际PF任然是1,这个1是执行add时产生的,mul指令没有改变它。
标志寄存器的改变用emu8086看比较方便,点开flag再单步执行就可以观察了。这是我实践总结出来的,也不一定正确,只是实际的表现是这样,欢迎大家共同讨论,发现问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-27 00:03:18 | 显示全部楼层

回帖奖励 +1 鱼币

乘法指令只影响标志位CF和OF,其他标志位位无定义
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-11-27 00:06:03 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-13 19:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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