Académique Documents
Professionnel Documents
Culture Documents
II-1 Introduction
• l'horloge : C'est l'horloge qui génère les signaux qui permettent le cadencement et la
synchronisation de toutes les opérations. C'est un signal carré qui a une fréquence fixe (3
Ghz par exemple) : a chaque coup (front) d'horloge, le microprocesseur réalise une tâche
élémentaire. L'exécution d'une instruction nécessite plusieurs coups d'horloges.
• Le décodeur : C'est lui qui se charge de "décoder" l'instruction contenue dans RI,
générer les signaux logiques correspondant et les communiquer au séquenceur.
• Le registre d'état : Le registre d'état est formé de plusieurs bits appelés drapeaux ou
indicateurs (Flags) qui sont positionnés par l'ALU après chaque opération.
Le processeur utilise toujours des registres, qui sont des petites mémoires internes très
rapides d'accès, pour stocker temporairement une donnée, une instruction ou une adresse.
Chaque registre stocke 8, 16, 32 bits, etc.
Le nombre exact de registres dépend du type de processeur et varie typiquement entre une
dizaine et une centaine.
Parmi les registres, le plus important est le registre accumulateur, qui est utilisé pour
stocker les résultats des opérations arithmétiques et logiques.
L'accumulateur intervient dans une proportion importante des instructions. Par exemple,
examinons ce qu'il se passe lorsque le processeur exécute une instruction comme ``Ajouter
5 au contenu de la case mémoire d'adresse 180'' :
L'instruction MOV BP,41h (assembleur) qui signifie : placer le nombre 41h dans le registre
BP. On utilise généralement le codage hexadécimal (BD 41 00) tant pour les instructions
que pour les données.
Remarque :
L'intérêt du langage assembleur est que chaque instruction que nous écrivons correspond à
une instruction élémentaire du processeur. C'est comme si on travaillait directement en
langage machine. Ainsi, on sait exactement tout ce que fait le processeur lors de
l'exécution d'un programme.
Quand on demande l'exécution d'un programme, celui-ci est chargé par le système
d'exploitation (à partir du disque dur ou autre support externe) dans une zone de la mémoire
RAM. La RAM étant organisée en octets, chaque élément d'instruction est donc stocké dans
Les mémoires Tampon sont des registres (unités mémoires contenant un seul mot de 8, 16,
32 ou 64 bits). Leur rôle consiste à stocker l'information (donnée ou adresse) durant le laps
de temps nécessaire pour un traitement donné.
II-3-1 : Indicateurs
A chaque opération, le microprocesseur positionne un certain nombre de bascules d'état. Ces
bascules sont appelées aussi indicateurs d'état ou drapeaux (status, flags en anglais). Par
exemple, si une soustraction donne un résultat nul, l'indicateur de zéro (Z) sera mis à 1. Ces
bascules sont regroupées dans le registre d'état :
On peut citer comme indicateurs:
– retenue (carry : C) : ce bit est positionné à 1 lorsqu'une opération arithmétique
produit une retenue
– retenue intermédiaire (Auxiliary-Carry : AC ou H) : Sur les opérations
arithmétiques, ce bit signale une retenue entre groupes de 4 bits (Half-byte: demi-
octet) d'une quantité de 8 bits.
– signe (Sign : S) : est mis à 0 lorsque le signe d'une donnée binaire est positif, et
mis à 1 lorsque le nombre est négatif
– débordement (Overflow : O) : Cet indicateur est mis 1, lorsqu'il y a un
dépassement de capacité pour les opérations arithmétiques en complément à 2.
Il apparaît que si l'on considère seulement les huit premiers bits de ce résultat, il est erroné.
Le neuvième bit est mémorisé dans le registre d'état et constitue le flags C : C=1
Il revient alors au programmeur de corriger le résultat obtenu, en testant la valeur de du bit
II-3-2 Registres
Il y’a deux types de registres : les registres d'usage général, et les registres d'adresses
(pointeurs).
Exemple :
MOV C,B: transfert du contenu du registre B dans le registre C.
Le processeur commence par sauvegarder le contenu de C dans la pile (PUSH C). Pour cela
(SP) est décrémenté de deux ((SP)=31000H-2=30FFEH), puis on effectue l'écriture de (C)
dans la mémoire à l'adresse (SP) : (30FFEH) = 6142H.
Pour PUSH A on obtient : (30FFCH)=1234H, et pour PUSH B : (30FFAH)=2D5AH. Pour
l'instruction POP B, (SP) est chargé dans le registre B (SP=30FFAH ; B=2D5AH) puis (SP)
est incrémenté de deux (SP= 30FFAH+2=30FFCH). Enfin, pour POP A on obtient :
A=1234H et (SP=30FFCH + 2 = 30FFEH).
Chaque instruction est caractérisée par le nombre de périodes d’horloge (ou microcycles)
qu’elle utilise (donnée fournie par le fabricant du microprocesseur).
Dans cette architecture standard, l’exécution d’une instruction se fait en trois étapes:
– Recherche de l'instruction (Fetch) ;
– Décodage (decode) ;
– Exécution (execute).
Exemple :
Le microprocesseur place le contenu de PC (10000H) sur le bus d’adresse et met RD à 1
(cycle de lecture). La mémoire met sur le bus de données le contenu de sa mémoire n°
10000H (ici 89D9H qui est le code de MOV C,B ). Le microprocesseur place dans son
registre d'instruction le contenu du bus de données (89D9H). L'unité de commande décode
et exécute l'instruction (MOV C,B).