鱼C论坛

 找回密码
 立即注册
查看: 2232|回复: 5

汇编语言11.1检测点求指点,实在不明白.

[复制链接]
发表于 2012-5-1 20:07:29 | 显示全部楼层 |阅读模式
2鱼币
未命名.jpg
这个题目谁会
sub al,al    ZF=1   PF=1   SF=0
mov al,1   ZF=0   PF=0   SF=0
后面的就不会了。
谁能给个详细的解释,我看了小甲鱼的答案,但是还是不懂啊。求调教啊。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-5-1 21:04:40 | 显示全部楼层
这是关键,其它应该没问题
360截图-5208187.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-17 22:06:44 | 显示全部楼层
add al,bl        al=2   即00000010,
add al,10    al=12d   即00001100
mul al     ax=144d   即00000000 10010000 ,ax是16位的寄存器, sf要看所放寄存器的最高位是0还是1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-19 09:49:14 | 显示全部楼层
这主要是搞明白每步执行之后的结果是什么就好办了,我们慢慢分析
你看。从第一步开始。
         
sub al,al           ;al-al结果为0,所以zf=1,pf=1,sf=0
mov al,1           ;al=0000 0001      zf=0,pf=0,sf=0
push ax            ;因为push是传送指令,所以对标志寄存器没有影响,结  
                        ;果还是zf=0,pf=0,sf=0

pop bx             ;(bx)=(ax)=0000,0000,0000,0001b
                         ;所以同上  zf=0,pf=0,sf=0

add al,bl           ;也就是0000 0001+0000 0001=0000 0010b
                         ;所以 zf=0,pf=0,sf=0

add al,10          ;注意,这里的10 是十进制的换成二进制就是1010b
                         ;再加上al就是0000 1010(10的二进制)+0000 0010(al)=0000 1100b 所以zf=0,pf=1,sf=0
                       

mul al              ;因为是8位的乘法,所以一个默认放在al中,此时(al)=0000 1100b,再乘以al就是0000 1100b*0000 1100b  
                        ;也就是0BH*0BH,就是两个十六进制的B相乘,结果是79H
                        ;存储在ax中,换成二进制就是 0000 0111 0000 1001b
                        ;所以,zf=0,pf=0,sf=0

这样说,你理解了吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-8-21 18:01:15 | 显示全部楼层

最后一个应该是 0CH * 0CH = 90H 。
因为1100b转换成16进制是C。不知道你是不是忽略了。
所以最后一个是 zf = 0, pf = 1, sf = 0.

特别谢谢你的解答。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-26 18:52:42 | 显示全部楼层
离丶dong子 发表于 2012-8-21 18:01
最后一个应该是 0CH * 0CH = 90H 。
因为1100b转换成16进制是C。不知道你是不是忽略了。
所以最后一个是 ...

嗯嗯。对对,,。。。。是啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-11 12:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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