okay, allora in altre parole.............
c6 corrisponde a 198 in dec
in binario corrisponde a:
11000110
^------- (ti indico il bit più significativo)
il flag di OF viene abilitato in quanto il bit numero 8 (lo vedi....?)è uguale a 1
è uguale a 1 perchè viene superato il numro 127
128 64 32 16 8 4 2 1
questo per add
-----------------------
per la sub ottieni c6-c6 = 0
LO ZERO, nel tuo caso è così
10000000
^------- (ti indico il bit più segnificativo)
quindi, anche in questo caso, hai il bit più significativo a 1 (lo vedi.......?)
quindi OF = 1 e riporto di 1 perchè riporti 1 all'overflow e cioè lo zero
spero di essermi spiegato.............
ma è meglio che studi un pò
per studio:
1111111 (conta gli i bit sono 7) = 127
11111111 = 255
ora questo è il contachilometri di AL............
ora se aggiungi 255 + 1 cosa ottieni?
per la tua sub
10000000 = zero ... quindi OF = 1 CF = 1 (riporto del contachilomtri)
per la tua add
11000110 = 198 CF = 0 OF = 1 ai il bit più significativo a 1 l'ottavo
ciao
P.S.
Proprio per la regola che il pc non cosidera signed o unsigned è il programmatore che sceglie di operare signed o unsigned
i flag vengono trattati dal x86, sempre in questo modo........
sei tu che devi decidere l'output da stampare......... in definitiva sei tu che devi interpretare che numero vuoi che stampi il pc
-128 = 0 - 128 = 256 - 128 = 128 = 10000000B