Compilation Tps 1 2

3338 mots 14 pages
Module EISE4 : Compilation
TPs 1 & 2 : Machine virtuelle, Assembleur, Structures de données de manipulation d'arbres

Ce premier TP est consacré à l'écriture en langage C de trois modules importants de la chaîne de compilation : la machine virtuelle, l'assembleur, et les fonctions C consacrées à la création et au parcours d'arborescences que sont les ASA (Arbres de Syntaxe Abstraite, Abstract Syntax Tree ou
AST en anglais). Chaque module fait l'objet d'une partie de ce long TP nécessaire pour disposer de toute la partie « back-end » du compilateur. En annexe se trouve la liste de toutes les instructions reconnues par la machine virtuelle EVM (EISE Virtual Machine).
PARTIE 1 : La machine virtuelle EVM
La machine virtuelle evm, dont vous écrirez le fichier source dans evm.c, prend un fichier langage machine en paramètre, l'ouvre, et exécute les instructions qui s'y trouvent. Ce fichier langage machine, pour la lisibilité, est en fait un fichier texte qui a la structure suivante : nombre_total_instructions 0 : instruction0
1 : instruction1

nombre_total_instructions­1 : instruction nombre_total_instructions­1

Ainsi, le fichier e1.bin suivant :
10
0:100
1:4
2:100
3:5
4:3
5:100
6:2
7:1
8:301
9:403

contient un code langage machine qui fait 10 instructions, et qui occupe les adresses 0 à 9. Aux adresses 0 et 1, vous pourrez reconnaître l'instruction push 4, puis push 5 aux adresses 2 et 3. A l'adresse 4 une instruction mult, un nouveau push 2 aux adresses 5 et 6, une instruction add à l'adresse 7, une instruction output en 8 et l'instruction d'arrêt de la machine virtuelle halt à l'adresse
9. L'exécution de ce code machine doit afficher la valeur 22.0 à l'écran. Une des fonctions vous allez écrire, readAssembly(FILE *fin), doit lire le contenu de ce fichier et stocker les entiers correspondants aux instructions dans le tableau codeSegment.
Les 7 premières questions du TP se trouvent dans le fichier evm.c fourni.

Les suivantes sont :
Q8) Pour tester votre EVM,

en relation

  • Tpe aspi 1
    1314 mots | 6 pages
  • Corrigé dm maths
    829 mots | 4 pages
  • Td autosy
    1279 mots | 6 pages
  • Tpe 1
    931 mots | 4 pages
  • Tp gérer 1
    410 mots | 2 pages
  • Cas Picasoe V2020
    7343 mots | 30 pages
  • Tp sncf
    500 mots | 2 pages
  • Tpe 1ère s
    706 mots | 3 pages
  • Shell et shell
    1833 mots | 8 pages
  • Droit bts muc
    286 mots | 2 pages
  • TPE 1 V2
    10155 mots | 41 pages
  • Sncf 2 1 2
    4162 mots | 17 pages
  • Dossier tpe 1l
    1458 mots | 6 pages
  • TPE 1
    1307 mots | 6 pages
  • caisse de compensation
    2845 mots | 12 pages