Etude d'un assembleur pour 68hc12 en c
Etude d’un assembleur pour le microcontrôleur 68HC12
Groupe I
Encadrant : Gabriel Synnaeve
Sommaire I. Introduction 3 I.1. Objectif 3 I.2. Planning et répartition du travail au sein du groupe 3 II. La décomposition modulaire 5 III. Fonctionnalisé de chacun des modules 6 III.1. La fonction table_to_strucop 6 III.2. La fonction def_type_ope 6 III.3. La fonction table_to_structmachine 6 III.4. La fonction type_adressage 7 III.5. La fonction valeur_immediate 8 IV. Méthode, évaluation et problème rencontrés 9 IV.1. Méthode et évaluation 9 IV.2. Problèmes rencontrés 9 V. Conclusion 10
Introduction
Objectif
L’objectif de ce projet est de réaliser sous Unix, en langage C ANSI, un logiciel assembleur pour le microprocesseur du 68HC12. Le rôle d’un logiciel assembleur est de traduire un programme décrivant une séries d’instructions destinées au microprocesseur écrit dans un langage informatique accessible à l’homme, le langage assembleur, en un programme décrivant la même série d’instructions dans un langage accessible à la machine, le code machine (code hexadécimal).
Le logiciel assembleur demandé est un assembleur deux passes. A la première passe, l’assembleur génère à partir du fichier source une liste chaînée des instructions et une table des symboles décrivant la correspondance entre les étiquettes et leur valeur. Ceci permet donc, lors de la seconde passe d’associer à chaque opérande sa valeur. Ainsi, le code machine peut être généré et écrit dans deux fichiers texte : le fichier listing et le fichier s19.
Pour réaliser ce projet, nous disposons d’une base de départ proposée par les enseignants à laquelle nous ajoutons divers modules. Ce rapport est donc composé, dans un premier temps du planning et de la répartition du travail au sein de notre groupe d’étudiant. Une seconde partie est consacrée à la description de la décomposition modulaire. Ces modules sont décrits