-1
現在、8086アセンブリを学習していますが、符号とオーバーフローのフラグの違いを理解していますが、そのうちの1つだけがオンの場合の例は考えられません。あなたは私に例を挙げることができますか?できるだけ簡単なコマンドを使用して、その例を理解できるようにしてください。8086アセンブリ - 符号とオーバーフローのフラグ
現在、8086アセンブリを学習していますが、符号とオーバーフローのフラグの違いを理解していますが、そのうちの1つだけがオンの場合の例は考えられません。あなたは私に例を挙げることができますか?できるだけ簡単なコマンドを使用して、その例を理解できるようにしてください。8086アセンブリ - 符号とオーバーフローのフラグ
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です。
OF vs. CFについては、http://teaching.idallen.com/dat2343/10f/notes/040_overflow.txtを参照してください(私はSFに言及していると思います) –