Registre d'Ă©tat
Le registre d'état, ou registre de drapeaux, est un ensemble de bits représentant des drapeaux au sein d'un processeur. Le registre RFLAGS est un exemple de registre d'état propre à l'architecture de processeurs x64.
Les bits composant le registre d'état sont indépendants les uns des autres, et la valeur de chacun apporte une information supplémentaire quant au résultat d'une opération antérieure. En effet, au cours d'un calcul, le processeur va automatiquement mettre à jour le registre d'état, en plus de fournir le résultat de l'opération. Le registre d'état comporte en général un minimum de quatre drapeaux, que sont les indicateurs de nullité (résultat égal à zéro), de retenue (l'opération a produit une retenue), de dépassement de capacité (le signe du résultat diffÚre du signe des opérandes), ainsi que de négativité (le résultat est inférieur à zéro).
Ces drapeaux peuvent ensuite ĂȘtre utilisĂ©s, notamment pour dĂ©terminer si une opĂ©ration conditionnelle doit ĂȘtre exĂ©cutĂ©e ou non. Une utilisation frĂ©quente de ce registre consiste Ă dĂ©terminer si un branchement (saut vers une portion spĂ©cifique du code) doit ĂȘtre effectuĂ©. Pour cela, on effectue tout d'abord une comparaison entre deux valeurs, qui consiste dans les faits Ă rĂ©aliser une soustraction entre les deux valeurs, opĂ©ration qui met Ă jour le registre d'Ă©tat. Ensuite, il suffit par exemple de tester la valeur du registre indiquant un rĂ©sultat nĂ©gatif pour savoir laquelle des deux valeurs Ă©tait la plus grande, et en fonction de cette valeur, rĂ©aliser ou non le branchement.
Drapeaux les plus communs
Les drapeaux ci-dessous sont présents dans la plupart des processeurs actuels.
Drapeau | Nom | Description |
---|---|---|
Z | Zéro | Indique que le résultat d'une opération est nul. |
C | Retenue (Carry) | Le rĂ©sultat de l'opĂ©ration est incomplet, car une retenue a Ă©tĂ© produite. Ce bit peut-ĂȘtre utilisĂ© pour rĂ©aliser des calculs sur des opĂ©randes plus grandes que la taille du processeur, en sĂ©parant les valeurs. Par exemple, un processeur 32 bits pourra additionner des mots de 64 bits en les sĂ©parant en deux mots de 32 bits, additionnĂ©s indĂ©pendamment, et en utilisant la retenue pour faire le lien entre les deux. |
N / S | Signe (Negative ou Sign) | Indique que le résultat de l'opération est inférieur à zéro. |
V / O | Dépassement de capacité (OVerflow) | Le signe du résultat diffÚre du signe des opérandes, ce qui indique que la valeur a débordé sur le bit de signe, et donc que la taille du processeur est trop petite pour stocker le résultat. |