鱼C论坛

 找回密码
 立即注册
查看: 2982|回复: 9

关于监测点11.1的问题

[复制链接]
发表于 2013-7-28 10:17:23 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 x87648510 于 2013-7-28 10:19 编辑
sub al,al
mov al,1;
在mov 中 al的值不是从0变为1了吗?ZF  应该变为1了 为什么说不受mov的影响呢???? 
push ax
pop bx
add al,bl
add al,10 
mul a   ;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-28 10:24:17 | 显示全部楼层
这个可以去参考一下课后答案非常的详细~~~主要是哪些指令影响标志寄存器,哪些指令影响,什么时候影响什么时候不影响的问题。那里解答的非常详细。楼主也可以使用-a命令将代码输入去观察~~~~如果楼主没有课后题答案,在论坛置顶帖中是有的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-28 10:26:31 | 显示全部楼层

写写呢 我有答案 可是都没详细的解析 很是郁闷
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-28 17:19:15 | 显示全部楼层
sub al,al      al=0h        ZF=1        PF=1        SF=0        al为0h,结果为0所以ZF为1代表真,有0个偶数所以PF为1,结果为非负,所以SF为0。当我们把数据当做无符号数来计算,SF位的值没有意义。

mov al,1      al=1h        ZF=1        PF=1        SF=0        mov是传送指令对标志寄存器没有影响,标志寄存器不发生改变。

push ax       ax=1h        ZF=1        PF=1        SF=0       push是传送指令对标志寄存器没有影响,标志寄存器不发生改变。

pop bx        bx=1h        ZF=1        PF=1        SF=0       pop是传送指令对标志寄存器没有影响,标志寄存器不发生改变。

add al,bl     al=2h        ZF=0        PF=0        SF=0       2h的二进制为0010 ,结果不为0则ZF为0,奇数个1则PF为0,SF为0

add al,10     al=12h       ZF=0        PF=1        SF=0      12h的二进制为10010,这是8位寄存器所以值为0010,结果不为0则ZF为0,偶数个1则PF为1,SF为0

mul al        ax=144h      ZF=0        PF=1        SF=0     144h的二进制为101000100,这是16位寄存器所以值为01000100,结果部位0则ZF为0,偶数个1则PF为1,SF为0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-28 18:11:32 | 显示全部楼层
福禄娃娃 发表于 2013-7-28 17:19
sub al,al      al=0h        ZF=1        PF=1        SF=0        al为0h,结果为0所以ZF为1代表真,有0个 ...

谢谢呢 ,主要是我以为mov传递数值的时候  标记寄存器也跟着改变呢  现在搞清楚了 谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-28 18:12:15 | 显示全部楼层
x87648510 发表于 2013-7-28 18:11
谢谢呢 ,主要是我以为mov传递数值的时候  标记寄存器也跟着改变呢  现在搞清楚了 谢谢啦

不用客气,鱼C共进退
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-20 19:49:01 | 显示全部楼层
福禄娃娃 发表于 2013-7-28 17:19
sub al,al      al=0h        ZF=1        PF=1        SF=0        al为0h,结果为0所以ZF为1代表真,有0个 ...

赞一个。。。。。。。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-9 20:44:57 | 显示全部楼层
4楼 很详细 谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-10 10:59:38 | 显示全部楼层
福禄娃娃 发表于 2013-7-28 17:19
sub al,al      al=0h        ZF=1        PF=1        SF=0        al为0h,结果为0所以ZF为1代表真,有0 ...

为什么8位寄存器的值只取4位,16位寄存器的值只取8位。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-6-20 22:12:44 | 显示全部楼层
福禄娃娃 发表于 2013-7-28 17:19
sub al,al      al=0h        ZF=1        PF=1        SF=0        al为0h,结果为0所以ZF为1代表真,有0 ...

add al,10     al=12h       ZF=0        PF=1        SF=0      12h的二进制为10010,这是8位寄存器所以值为0010,结果不为0则ZF为0,偶数个1则PF为1,SF为0   
------ al是8位寄存器,为啥值是0010啊,假如说是0010的话,哪来的偶数个1,PF=1啊?

mul al        ax=144h      ZF=0        PF=1        SF=0     144h的二进制为101000100,这是16位寄存器所以值为01000100,结果部位0则ZF为0,偶数个1则PF为1,SF为0
------ 乘后的结果保存在ax是16位寄存器,同上不理解为啥值就是01000100了?

------帮忙在解释下吧高人,多谢啦!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-27 15:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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