Professional Documents
Culture Documents
Le complément à deux est un codage permettant de représenter des entiers relatifs. Il existe
d’autres codages moins utilisés (e.g. signe et valeur absolue, complément à un) que l’on ne
détaillera pas ici.
Question 1 Remplir un tableau contenant les valeurs en base 2, en base 10 et en base 16 des
entiers relatifs entre -8 et 7 (inclus). Comment peut-on calculer −X à partir de X ?
Question 4 Comment peut-on détecter un dépassement de capacité lors d’une opération sur
des nombres codés en complément à deux ?
On commence par implanter l’opération d’addition. Pour cela, on se base sur l’architecture
dite de « l’additionneur à propagation de retenue ». Le principe est de construire une cellule
élémentaire capable d’effectuer une addition entre deux bits ai et bi , en prenant en compte une
retenue entrante ci , et qui produit en sortie la somme zi = ai + bi et une retenue sortante ci+1 .
Une fois cette cellule disponible, il est facile de construire un additionneur n bits en reliant la
retenue entrante de la cellule de rang i + 1 à la retenue sortant de la cellule de rang i.
cn c0
zn−1 zn−2 z1 z0
Question 2 Exprimer le bit O en fonction des ci . Quels sens peut-on donner aux valeurs de
C et O en fonction des paramètres A et B et de l’opération effectuée ?
On veut maintenant implanter l’opération de soustraction (on note que dans cette UAL, la
soustraction ne prend pas en compte une éventuelle retenue entrante : il s’agit d’une opération
SUB et pas SUBC).
Question 3 En se basant sur la relation −X = X + 1, expliquer comment on peut simplement
modifier le circuit d’une cellule élémentaire d’additionneur pour gérer la soustraction de deux
entiers relatifs codés en complément à deux. Dessiner le schéma correspondant à la cellule de
rang 0.
En plus des indicateurs C et O présentés plus haut, on trouve traditionnellement deux autres
indicateurs dans la plupart des UAL :
– Z (Zero) vaut 1 ssi le résultat d’une opération est nul ;
– S (Sign) vaut 1 ssi le résultat d’une opération, interprété comme un entier relatif codé en
complément à deux, est négatif.
Question 4 Comment peut-on très simplement ajouter la gestion de ces indicateurs à l’UAL ?