标题: 王爽汇编语言检测点11.1 关于mul al的解答 [打印本页]

作者: 海盗船    时间: 2020-3-5 21:59
标题: 王爽汇编语言检测点11.1 关于mul al的解答
本人是汇编初学者,学习到检测点11.1的时候遇到了问题,就是 SF为什么=0,所以我搜了网上的答案,结果如下(好多解答都是这样的):

sub al,al     al=0h        ZF=1        PF=1        SF=0

mov al,1      al=1h        ZF=1        PF=1        SF=0

push ax       ax=1h        ZF=1        PF=1        SF=0

pop bx        bx=1h        ZF=1        PF=1        SF=0

add al,bl     al=2h        ZF=0        PF=0        SF=0

add al,10     al=12h       ZF=0        PF=1        SF=0

mul al        ax=144h      ZF=0        PF=1        SF=0

但很明显,解释是有问题的, add al,10     al=12h,al应该=12(十进制),mul al        ax=144h,ax应该=144(十进制),我一直把结果当成144=10010000B,所以认为SF=1,后来又搜了好多文章,找到应该是正确答案,mul的结果存在ax中,ax=144=0000000010010000B,所以SF=0,SF是针对ax的结果而不是al。


作者: Y_G_G    时间: 2020-3-6 00:22
哥们,汇编是基于硬件的,不同的硬件不同有汇编
王爽的是8086的汇编,这单片机大多是8051的汇编,不一样的,估计没有人会
作者: 海盗船    时间: 2020-3-6 07:23
Y_G_G 发表于 2020-3-6 00:22
哥们,汇编是基于硬件的,不同的硬件不同有汇编
王爽的是8086的汇编,这单片机大多是8051的汇编,不一样的,估 ...

好多人喜欢用百度,百度可以百到这个帖子的,所以这个网站以外的人也是可以看到的
作者: SuperMuscleMan    时间: 2020-3-14 23:09
感谢楼主,解惑了
作者: acidcannon    时间: 2022-3-7 08:58
结论不对。
事实上执行完mul al后SF具体是多少取决于硬件本身,8086手册明确说明mul指令为无符号乘法指令,对于SF的影响是未定义的,所以没有固定的答案。具体位置在8086手册6-21最下方




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1