MAC :
Une machine pédagogique
Notes de cours
Jean-Jacques Girardot
Mars 2006
Ecole Nationale Supérieure des Mines de Saint-Etienne
158 Cours Fauriel
42023 Saint-Etienne Cédex
2
Document de travail. Release 0.07
Date d’impression 2 avril 2006
Introduction
Avant-Propos
Ce document présente une machine virtuelle « pédagogique », dont l’architecture a été conçue de façon à être
aisément appréhendable par une personne ayant peu de connaissances en architecture de machines, assembleurs, com-
pilateurs, etc. Cette machine virtuelle est décrite par ce document. Il existe également des logiciels, dont le rôle est de
simuler le fonctionnement de la machine, de fournir un assembleur pour cette machine, ainsi qu’un petit compilateur
du langage C.
Ce simulateur et les supports de cours correspondants ont été utilisés dans différents cours d’informatique, en-
seigné à l’Ecole des Mines de Saint-Etienne. La compréhension des sources fournis (en langage C) implique d’avoir
suivi au moins un cours d’introduction à ce langage (par exemple [2]). Les logiciels utilisent aussi les outils Lex et
Yacc, pour lesquels nombre de descriptions existent dans la littérature (par exemple [3]). Ces logiciels, ainsi que leur
documentation, sont disponibles sur leur site Web [1].
3
4
Chapitre 1
MAC, un ordinateur virtuel
1.1 Introduction
Ce chapitre présente MAC, un ordinateur simplifié, virtuel, qui se veut "pédagogique", composé d’une CPU et
d’une mémoire. Il existe un logiciel sim, simulateur et metteur au point de cette machine, un assembleur, asm,
générant du code pour cette machine, et un micro compilateur C, mcc, qui accepte un sous-ensemble du langage C, et
génère des instructions en langage d’assemblage. Ce document présente les spécifications de la machine MAC.
1.2 La machine MAC
1.2.1 Description générale
La machine MAC est une machine à mots de 16 bits. Son espace d’adressage est de 64 ko. Dans un mot, les bits
sont numérotés de gauche à droite, de 0 à 15, le bit 0 étant le bit de poids fort et représentant le signe du mot.
1.2.2 La CPU
La CPU (Central Processing Unit, ou Unité Centrale) se compose des éléments suivants, visibles du programmeur :
1 registre programme 16 bits : PC (Program Counter)
1 registre état 16 bits : PSW (Program Status Word)
bit 0 : R (Run) - 1 ssi la machine est en cours d’exécution
bits 1-2 : inutilisés
bit 3 : P (Parity) - bit de parité (poids faible) du dernier résultat. 1 ssi ce résultat est pair.
bit 4 : O (Overflow) - 1 ssi un overflow s’est produit au cours d’un calcul
bit 5 : C (Carry) - bit de retenue
bit 6 : S (Sign) - bit de signe (poids fort) du dernier résultat (1 si négatif)
bit 7 : Z (Zero) - 1 ssi le dernier résultat est nul
bits 8-15 : octet indiquant la nature de la dernière interruption
16 registres 16 bits, R0 à R15
Note
R0 et R1, réunis, sont utilisés comme registre signé 32 bits pour le résultat d’une multiplication.
R0 et R1, réunis, sont utilisés comme registre signé 32 bits pour l’opérande d’une division.
R15 est utilisé comme pointeur de pile pour les appels de sous-programmes.
A l’initialisation de la machine, tous les registres et tous les mots de la mémoire contiennent la valeur 0.
La CPU dispose d’une horloge, dont la fréquence est réglable. Les vitesses des instructions sont estimées en
"ticks" de l’horloge. Il existe également un compteur d’instructions, qui peut être armé et positionné : une interruption
(ErrClck) sera levée si le nombre d’instructions exécutées par la CPU dépasse la valeur du compteur.
5
1 / 56 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !