2

それが問題です。2 番目mulにオーバーフロー フラグが 1 に設定されます。乗算は単純120*(-6) = -720で、16ビットに含まれています...理由がわかりません。

    .model small
    .stack 
    .data 
a dw 30    
b dw 3
c dw -6
ris dw ?       
    .code
    .startup 

mov ax, a
mov bx, 4
mul bx
jo ove

mov bx, c
mul bx
jo ove

...

    end
4

2 に答える 2

6

mul符号なし乗算命令であるため、実際には 120 * 65526 を乗算しているため、オーバーフローが発生します (-6 signed = 0xfffa = 65526 unsigned であることに注意してください)。

符号付き乗算の場合、が必要imulです。

于 2013-04-29T09:10:59.063 に答える
2

記号IMULのための代わりに使用する必要があります。MUL

于 2013-04-29T09:11:11.353 に答える