wouiwhbn 发表于 2012-8-14 16:19:00

检测11.1

mul al         sf=?

AX=144.   即10010000,sf 应该是1吧

lukelqz 发表于 2012-8-14 16:49:06

最后结果 mul al 其结果放在ax中 为0000000010010000b最高位为0, sf=0

lukelqz 发表于 2012-8-14 17:05:06

{:5_96:}我开始说的不对,你再看下我的这个测试结果

结论:mul对SF位没有影响。

_活不明白﹏ 发表于 2012-8-16 18:32:12

怎么可能没影响呢
不知道怎么上传图片,所以传了附件

_活不明白﹏ 发表于 2012-8-16 19:12:16

本帖最后由 _活不明白﹏ 于 2012-8-16 19:15 编辑

sub al,al-------->al=0
mov al,1------->al=1
push ax-------->al=1
pop bx--------->bl=1
add al,bl------->al=2
add al,10------>al=12
mul al---------->al=al*ax=12*12=144=10010000B--->8位,最高位为1,则sf果断为1
以上楼主问题回答
说一下lukelqz哥们为什么会弄错
原因在于mul al这句话,al为8位寄存器,你得到AX寄存器中F231的值--->1111001000110001B,高八位11110010,低八位00110001,此时sf的取值由于操作的是al的8位寄存器,因此不会看高八位,而是看的低八位,即00110001,最高位为0,因此sf值为0
你所写的程序中,将mul al改为mul ax就可以看到变化了

依然是不知道怎么上传图,因此上传附件,基本上不写回复的,今天不知道怎么,突然想回答了
页: [1]
查看完整版本: 检测11.1