2017-11-24 9 views
-1

現在、8086アセンブリを学習していますが、符号とオーバーフローのフラグの違いを理解していますが、そのうちの1つだけがオンの場合の例は考えられません。あなたは私に例を挙げることができますか?できるだけ簡単なコマンドを使用して、その例を理解できるようにしてください。8086アセンブリ - 符号とオーバーフローのフラグ

+2

OF vs. CFについては、http://teaching.idallen.com/dat2343/10f/notes/040_overflow.txtを参照してください(私はSFに言及していると思います) –

答えて

1

x86のneg命令は、0 - inputに基づいてフラグを設定します。

.model small 
.data 
.code 

    mov ax, @data 
    mov ds, ax 

    mov al, 6 
    neg al  ; this will set sign flag but not overflow flag (NEG instruction is used to find 2's complement of some number)  

    mov al, -127   
    sub al, 127 ; this will set overflow flag but not sign flag: -127 - 127 = +2 

    mov al, -128 
    neg al  ; this sets both OF and SF: 0 - 128 overflow to -128 

    mov ah, 04ch 
    int 21h  ; exit(al) 

end 

emu8086でテスト済みです。

0-128が-128にオーバーフローすることに注意してください。 (2's complement special case of the most negative number being its own absolute value)。最大の8ビット2の補数の整数は+127です。

関連する問題