王爽汇编语言第二版检测11.1
zf pf sf
sub al,al 1 1 0
mov al,1 1 1 0
push ax 1 1 0
pop bx 1 1 0
add al,bl 0 0 0
add al,10 0 1 0
mul al 0 1 0
add al,10 此命令执行之后寄存器中al的值应该为00001010
mul al 相当于十进制12*12 寄存器al的值应该为10010000 zf=0 pf=1 sf=1
为什么查询百度文库的答案sf=0?难道mul al之后,SF判断的是ah的第七位?
[解决办法]
当然不是的。看下 mul 指令的说明就会发现 mul 不影响 SF 位的,只会根据结果设置 OF 和 CF 位;所以 mul 指令前 SF=0 ,执行 mul 指令后 SF 还是 0 。