Académique Documents
Professionnel Documents
Culture Documents
Compilation
Langage assembleur
Assemblage
Langage machine
2. Modes d’adressage
La valeur de l’opérande dépend du mode d’adressage (à voir plus loin). Le nombre de champs adresse
dépend de l’organisation des registres dans le processeur et du chemin de données.
- le processeur dispose de registres généraux. On trouvera dans ce cas des instructions avec
3 champs adresses: destination, source1, source2 (add R1, R2, R3 qui calcule R1 <- R2 + R3)
2 champs adresses: le registre d’un des opérandes reçoit le résultat (add R1, R2 qui calcule R1
<- R1 + R2)
- le processeur utilise un accumulateur. Deux instructions spécifiques sont ajoutées pour accéder à
l’accumulateur: load X pour charger l’accumulateur avec une donnée X et store X pour écrire le
contenu de l’accumulateur en mémoire ou dans un autre registre.
1 champ adresse: source2 (add R1 qui calcule Acc <- Acc + R1)
- le processeur utilise une pile. Une pile est une structure de données en mémoire centrale dans laquelle
les données sont placées “les unes sur les autres”: la dernière donnée entrant dans la pile sera la
première à en sortir. Un registre spécial SP contient l’adresse du sommet de la pile. Deux opérations
sont définies sur les structures de pile:
push X: empiler une donnée X, c’est à dire la placer au sommet de la pile et faire avancer le
registre SP vers la cellule mémoire suivante
pop X: dépiler vers une cellule mémoire ou un registre X, c’est à dire placer dans X la donnée au
sommet de la pile désigné par SP et faire avancer le registre SP vers la cellule mémoire précédente.
Dans ce cas, toutes les opérations prennent leurs opérandes en sommet de pile, et stockent le résultat en
sommet de pile. De plus les opérandes sont automatiquement dépilées.
0 champ adresse (add qui effectue le calcul [SP-2] <- [SP-2] + [SP-1]; SP <- SP - 1 (dans le cas
d’une pile qui croît vers les adresses hautes))
2.2.3. Adressage indirect : La valeur qui figure dans l’instruction correspond à l’adresse de
l’adresse de l’opérande. Cette adresse est stockée dans un registre ou à une autre adresse
mémoire. L’adressage indirect par registre est présent dans la totalité des unités de
contrôle, par contre, l’adressage indirect par mémoire est moins fréquent.
2.2.4. Adressage registre : l’adresse de l’opérande est donnée dans l’instruction sous forme
du numéro de registre.
2.2.5. Adressage registre indirect: l’adresse de l’opérande (en mémoire) se trouve dans un
registre.
2.2.6. Adressage indexé (ou basé) : il est parfois nécessaire d’accéder à des données situées
à des adresses consécutives en mémoire centrale (Exemple : tableau, chaines de
caractères). En adressage indexé, on charge un registre d’index avec l’adresse de début de
cette zone de données, ensuite on spécifie dans l’instruction le déplacement à réaliser à
partir de cet index. L’adresse réelle de la donnée est donc égale à l’adresse de l’index
ajouté au déplacement. Certaines unités de contrôle exécutent automatiquement
l’incrémentation ou la décrémentation de leurs registres d’index ce qui permet de réaliser
des transferts ou d’autres opérations sur des zones.
Exemple illustratif : Etant données les valeurs des mots mémoire ci-dessous et une machine à une adresse
disposant d’un accumulateur :
Adresses Mémoire
20 40
30 50
40 60
50 70
Quelles sont les valeurs chargées dans l’accumulateur, après exécution des instructions suivantes : LOAD
IMMEDIAT 20, LOAD INDIRECT 20, LOAD DIRECT 30, LOAD INDIRECT 30
Voici une liste des instructions que l’on rencontre habituellement dans les langages d’assemblage. Elles sont
regroupées par thématique. Les mnémoniques présentées sont celles couramment utilisés (pour un
processeur réel). Nous nous plaçons dans le cas d’un langage d’assemblage à 2 champs d’adresse. Notez que
la plupart des processeurs exige souvent qu’au moins une des opérandes soit un registre.
5. L’horloge et le séquenceur :
5.1. L’horloge : est une base de temps qui divise le temps en battements de même durée appelés cycles.
Elle distribue des impulsions régulièrement pour synchroniser les différentes opérations élémentaires
à effectuer pendant le déroulement d’une instruction. A chaque cycle d’horloge, et en fonction des
ordres donnés par l’unité de contrôle, certaines portes se ferment d’autres s’ouvrent pour laisser
circuler des informations.
Cycle machine : cycle de base ou élémentaire égal à l’inverse de la fréquence.
Cycle instruction : cycle recherche + cycle d’exécution (chacun d’eux peut nécessiter plusieurs
cycles machine)
Chapitre III Notions sur les instructions d’un ordinateur
5.2. Le décodeur : appelé décodeur de fonctions, est capable de reconnaître la fonction indiquée par
l’instruction à exécuter parmi toutes les opérations possibles. La fonction de décodage consiste à faire
correspondre à un code présent en entrée sur n lignes une seule sortie active parmi le 2n sorties
possibles.
5.3. Le séquenceur : c’est un automate distribuant des signaux de commandes aux diverses unités
participantes à l’exécution d’une instruction selon un chronogramme précis en tenant compte des
temps de réponse des circuits sollicités. Il peut être câblé ou microprogrammé.
Un séquenceur câblé est un circuit séquentiel complexe comprenant un sous circuit pour chacune des
instructions à commander. Ce sous circuit est activé par le décodeur.
Il est toujours possible de remplacer un circuit logique par une suite de micro instructions stockées
dans une mémoire de microprogrammation. Le code de l’opération à exécuter dans l’instruction est
utilisé comme étant l’adresse de la 1ère micro instruction du microprogramme. Ce microprogramme
est capable de générer une suite de signaux de commande équivalente à celle produite par un
séquenceur câblé.
Un séquenceur microprogrammé est plus lent qu’un séquenceur câblé.