Le fonctionnement général du compilateur
Comme précisé précédemment, le compilateur fonctionne sur un système de double passe : il lit deux fois le fichier source.
En effet, vu que le SC91-A prend en charge les memory zones, il nous a été nécessaire de lire les sources une première fois afin de définir ces zones,
la deuxième lecture servant à l'encodage des instructions.
Les instructions sont encodées directement après leur lecture, ce qui permet d'accelerer le traitement et d'utiliser moins de ressources mémoire
L'encodage des instructions
L'encodage des instructions se décompose en 6 étapes :
- lecture de la ligne dans le fichier source
- recherche de l'instruction correspondante (si aucune instruction n'est trouvée, on passe à la ligne suivante)
- normalisation de la ligne lue dans le fichier source
- vérification du nombre d'arguments (s'il y en a) et obtention de la valeur corespondante à chaque arguments
- vérification du mode (s'il y en a un) et obtention de sa valeur
- encodage de la ligne (regroupement des valeurs de l'instruction, des arguments et du mode)
Bien sûr à chaque étape est effectué une vérification des différentes valeurs, et chaque fonction est protégée à l'aide d'exceptions d'erreurs pour éviter tout bug qui empecherait l'application de tourner normalement.