Fonctionnement de l'emulateur

Fonctionnement du simulateur:


Les hichiers .map

        Les fichiers .map sont lus par l'émulateur pour construire les différents périphériques et le gestionnaire de registres. La syntaxe est relativement simple, à chaque ligne on déclare un périphérique. Les lignes se composent d'un identifiant, d'un séparateur « : » puis de un ou des paramètres. Les ligne commençant par « # » sont considérées comme des commentaires et ne sont pas traitées.
        Actuellement les deux périphériques disponibles sont la ROM et la RAM. Pour déclarer une mémoire RAM il suffit de mettre la ligne « RAM:0x00000000,0xFFFFFFFF » les paramètres sont les adresses de début et de fin de la mémoire. Les adresses doivent être sur quatre octet et en hexadécimal. Pour déclarer une mémoire ROM il suffit de mettre la ligne « ROM:fic.hex » le paramètre est le fichier .hex à partir duquel sera initialisé la mémoire ROM.
        Un identifiant est réservé : il sagit de Regsiter. Cet identifiant nous permet de connaître le nombre de registres du processeur, le seul paramètre à passer est le nombre de registres (en décimal).

Les hichiers .hex

        Le format .hex est un format développé par Intel pour transférer des données dans une mémoire ROM, nous avons légèrement ce modifié ce format afin de pouvoir nous en servir pour le simple-cpu. Les fichiers .hex sont utilisé pour initialiser la ROM de l'émulateur.
        Le fichier se lit ligne par lignes, les lignes sont des suites d'octets, tous les octets sont écrits en hexadécimal, et occupent deux caractères. Par exemple un octet de valeur 255 en décimal s'écrit FF .
        Chaque ligne commence par « : » ensuite le premier octet est la taille des données pure contenues sur la ligne. Après l'adresse à partir de la quelle il faut charger les données, est écrite sur quatre octets, à la différence du format Intel qui lui ne prévoyait que deux octets pour l'adresse. Après l'adresse il y à un octet à zéro, c'est l'octet de commande, mais dans notre cas il sera toujours à zéro. Après cet octet à zéro, on a les données à charger. Après les données on a un dernier octet, le checksum. Pour vérifier l'intégrité d'une ligne il faut faire la somme des tous les octets de la ligne un à un, si cette somme vaut zéro modulo 256 alors la ligne est correcte. Les lignes commençant par « # » sont considérées comme des commentaires et ne sont pas traitées.

Utilisation du debugger.

        Au lancement le debugger affiche les différents périphériques de l'architecture. Lorsque le simulateur est prêt vous pouvez lancer vos commandes voici les différentes commandes reconnues par le débugger:


Simple-Cpu The Simple CPU project The Simple CPU project
Un projet de disk91
Small CPU project