標題: 王爽匯編語言檢測點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://m.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |