Caractéristiques de l’UAL :
Notre UAL nous permet d’effectuer 7 opérations sur des entiers signés de 8 bits.
Entrées :
Notre UAL prend 3 entrées :
- Un nombre sur 8 bits “A” utilisé en entrée des opérations.
- Un nombre sur 8 bits “B” utilisé en entrée des opérations.
- Un nombre sur 3 bits “ctr” utilisé pour sélectionner l’opération désirée.
Sorties :
Notre UAL possède 2 sorties :
- Un nombre sur 8 bits étant le résultat de l’opération choisie.
- Un nombre sur 4 bits présentant chaque flag.
Opérations :
Notre UAL peut nous autoriser à effectuer 8 opérations. Nous nous servirons uniquement de 7 d’entre elles :
- ctr = 000 : Addition
- ctr = 001 : Soustraction
- ctr = 010 : OU bit à bit
- ctr = 011 : Et bit à bit
- ctr = 100 : Non bit à bit
- ctr = 101 : Décalage à gauche logique
- ctr = 110 : Décalage à droite logique

Les opérations “non” et les 2 décalages se servent uniquement du premier nombre “A”. C+ et C- sont les carrys de l’addition et de la soustraction.
Flags :

Notre sortie flags est représentée par un 4 bit correspondant respectivement à CF, ZF, SF et OF.
Carry Flag (CF) :
Commentaire : Dans le cadre d’additions et de soustractions sur des nombres signés, le carry flag ne pourra jamais être égal à 1. Vous pouvez donc relier le bit CF à “0”.
Cependant, dans le cadre de ce tutoriel, le circuit restera explicité :
- c+ est le carry de l’opération 000 (addition)
- c- est le carry de l’opération 001 (soustraction)

- Si ctr = 000, alors CF = c+
- Si ctr = 001, alors CF = c-
- Sinon CF = 0
Zéro Flag (ZF) :
Le zéro flag est égal à 1 si et seulement si tous les bits de S sont égaux à 0 :

Autrement dit :
Sign Flag (SF) :
SF correspond au signe de S. Si S négatif, alors S = 1, sinon S=0.
Autrement dit :

Overflow Flag (OF) :
L’overflow flag est égal à 1 dans 4 cas différent:
- Pour une addition : Si un positif + un positif = un négatif
- Pour une addition : Si un négatif + un négatif = un positif
- Pour une soustraction : Si un négatif - un positif = un positif
- Pour une soustraction : Si un positif - un négatif = un négatif
Dans les autres cas : OF = 0.
- S A est le signe de A
- S B est le signe de B
- SF est le signe de S

Autrement dit :
- OF = OF+ si ctr = 000, OF- si ctr = 001, 0 sinon.
Mention :
Cette unité arithmétique et logique a été conçu dans le cadre d’un projet d’informatique en collaboration avec Mr Lucas Lelièvre que je remercie.