Académique Documents
Professionnel Documents
Culture Documents
65
Les flags
67
SF (Sign Flag) et ZF (Zero Flag)
Exemples (sur 4 bits):
68
CF (carry flag)
Le positionnement de ce flag est significatif seulement lors du
traitement des nombres non signés.
70
OF (Overflow flag)
71
OF (Overflow flag)
En fixant un nombre de bits, l'ALU utilise les deux règles
suivantes pour positionner OF:
OF=1 si:
• Positif + Positif = Négatif
• Négatif + Négatif = Positif
Exemples:
• 0111 + 0101 = 1100 (OF=1, Positif+Positif=Négatif)
• 1011 + 1100 = 0111 (OF=1, N + N=P)
• 1100 + 1100 = 1000 (OF=0 , N + N=N )
72 • 1000 + 0001 = 1001 (OF=0 , P + N=N)
Exemple:
On considère les opérations ci-dessous sur 8 bits (P: positif, N: négatif):
Retenu
Opération En décimal
F(P,N) SF ZF OF CF
(hexa) Non Signé Signé
20 + 30 = 50 Non P+P= P 32 + 48 = 80 32 + 48 = 80 0 0 0 0
73
Instructions de branchement
Le tableau ci-dessous récapitule les différents branchements en fonction
de positionnement des flags du registre d'état:
Instruction Description Flags
JO Jump if overflow OF = 1
JNO Jump if not overflow OF = 0
JS Jump if sign SF = 1
JNS Jump if not sign SF = 0
JZ Jump if zero
ZF = 1
JE Jump if equal
JNZ Jump if not zero
ZF = 0
JNE Jump if not equal
JC Jump if carry
JB Jump if below CF = 1
JNAE Jump if not above or equal
74
Instructions de branchement
Instruction Description Flags
JNB Jump if not below
JAE Jump if above or equal CF = 0
JNC Jump if not carry
JBE Jump if below or equal
CF = 1 or ZF = 1
JNA Jump if not above
JA Jump if above
CF = 0 and ZF = 0
JNBE Jump if not below or equal
JL Jump if less
SF <> OF
JNGE Jump if not greater or equal
JGE Jump if greater or equal
SF = OF
JNL Jump if not less
JLE Jump if less or equal
ZF = 1 or SF <> OF
JNG Jump if not greater
JG Jump if greater
ZF = 0 and SF = OF
75 JNLE Jump if not less or equal