fjs2009 发表于 2011-12-22 10:30:21

检测点11.1求助大虾

检测点11.1
最后一个:mul al,算出来,al 应该是144(10010000B)
根据甲鱼老师讲的,第7位,如果是1,那么SF就等1,如果为0,那么SF就等于0
这里,114(10010000B)第7位等于1
为什么课后作业的答案SF=0?求解答。

ytrfamli 发表于 2011-12-22 14:27:09

也许听起来有点奇怪,但是无论是处理无符号数的mul指令或是有符号数的imul指令,
她们都不会影响SF标志(准确的说是SF标志对她们没有意义.别问为什麽.当初就是如此设计)

这是互联网上查到的资料,LZ参考参考吧~
我是查过之後才发现我以前的理解是错误的,算是学习了一点新知,哈.

(以前的想法是SF由"结果"的最高位决定,而因为mul al结果存在ax,
为0x0090,最高位为0,故SF为0.但如我上面所说,这不是完全正确的说法.)

fjs2009 发表于 2011-12-22 16:06:34

原来如此,汗!!!谢谢二楼。

fjs2009 发表于 2011-12-23 08:42:46

本帖最后由 fjs2009 于 2011-12-23 08:45 编辑

好像也不对哦。我在论坛一个仁兄那儿下载一个课后作业题说明,他是按16进制来算的,算出来,ax=114H,那么二进制就是:0000000100010100B,这样的话,SF=0就想得通了,因为第7位是0。

pediyzhi 发表于 2012-8-31 21:13:01

楼上是错的. 不得是144H 还是144D 结果SF都是不会变的为0
页: [1]
查看完整版本: 检测点11.1求助大虾