鱼C论坛

 找回密码
 立即注册
查看: 5152|回复: 6

监测点11.1

[复制链接]
发表于 2012-4-27 21:25:31 | 显示全部楼层 |阅读模式
5鱼币
QQ截图20120427212339.png sub al,al 结果是0 zf=1,  pf=1   sf=0
                                                                         mov al,1   结果zf怎么还是1?

最佳答案

查看完整内容

书上有这些内容
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-4-27 21:25:32 | 显示全部楼层
书上有这些内容
360截图-5218375.jpg
360截图-5208187.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-4-28 07:26:11 | 显示全部楼层
对标志寄存器会产生影响的大都为运算指令(逻辑或算数运算 如:and、sub、mul)
对其无影响的大都为传送指令(如:mov、push)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-4-28 07:28:29 | 显示全部楼层

  mov al,1     al  不是就变为1了 zf不是应该是0吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-4-28 07:32:09 | 显示全部楼层
不是所有指令都会影响标志寄存器,对一些传送指令(如:mov、push)
不管其结果为多少,相应标志位都不会改变
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-5 18:08:16 | 显示全部楼层
刚看的时候我也懵逼了,就是那些mul,sub,and等会改变值的同时对标志位产生影响,而mov那些只是改变数值,对标志位不产生影响
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-5 01:14:58 | 显示全部楼层
芊芊 发表于 2012-4-28 07:28
mov al,1     al  不是就变为1了 zf不是应该是0吗

这道题很多人可能糊涂的地方是把每一行当成单独一题,实际上是从上到下为一个连续的程序来看待
sub al, al ;al = 0
mov al, 1 ;al = 1
push ax   ;ax = 0000 0001 入栈
pop bx    ;bx = 0000 0001 出栈
add al,bl  ; al = 01 + 01 = 02 即0010
add al, 10 ;al = 12 即1100
mul al     ;al = 12 * 12 = 144 即 1001 0000

再来对比答案:
1 1 0
1 1 0   mov对标致位没影响,照抄下来
1 1 0   同上
1 1 0   同上
0 0 0
0 1 0
0 1 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 15:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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