本人是匯編初學者,學習到檢測點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。
|