\chapter{Manuel d'utilisation} %lignes de commandes des progs %commandes du mode debug du simul \section{L'Assembleur : compilo} Si l'on lance au prompt du shell la commande ./compilo, on obtient le resultat suivant : \begin{verbatim} $ ./compilo Assembler v1.0 Usage: compilo program.asm objet.out \end{verbatim} Ceci nous indique donc les traditionnels arguments a passer à l'assembleur. On invoquera donc a chaque fois que l'on aura besoin l'assembleur, sachant que sa ligne de commande demande uniquement le nom du fichier d'entrée et le nom du fichier de sortie. NB : Il est à noter que la présence du fichier instructions.txt décrivant le méta-langage est indispensable à toute exécution de compilo. Exemple d'exécution : \begin{verbatim} $ ./compilo ../samples/recherche.s recherche.o Assembler v1.0 Performing initialisation... o Initialising the meta engine... Done! o Meta language loading... Done! o Initialising the assembler core... Done! Assembling file ../samples/recherche.s... Generating output file recherche.o... Statistics: 29 words of text, 297 words of data, and 0 words reserved. 19 symbols generated with 9 internal and 10 external. Performing shutdown... Exitting, bye! \end{verbatim} \section{L'Editeur de liens : linker} La ligne de commande que nous livre l'exécution sans argument du programme 'linker' est la suivante: \begin{verbatim} $ ./linker Linker v1.0 Usage: linker obj1 [obj2 [obj3 [...]]] binary \end{verbatim} Nous devons donc spécifier au moins un fichier objet, et un nom de fichier binaire de sortie. Exemple d'exécution: \begin{verbatim} $ ./linker recherche.o recherche Linker v1.0 Performing initialisation... o Initialising the linker... Done! Linking files... Generating output file... Statistics: 29 words of text, 297 words of data and reserving 0 words Output file size: 343 words containing 10 relocating offsets. Performing shutdown... Exitting, bye! \end{verbatim} \section{Le Simulateur : simul } \subsection{la ligne de commande} Le nom de la commande à lancer pour exécuter le simulateur est 'simul'. La ligne de commande est la suivante: \begin{verbatim} $ ./simul Simul v1.0 Usage: linker [-s] [-d] binary \end{verbatim} L'option -s sert à sélectionner une ALU différente, et plus instable. L'option -d sert à déclanger le debugger dès la première instruction. Bien évidemment, il faut donner le nom d'un fichier binaire à exécuter. \subsection{le mode interactif} Lors de l'exécution du simulateur, le programme exécuté tourne jusqu'à ce qu'une instruction HALT est rencontrée. Pour interrompre l'exécution et déclanger le debugger, il est possible de frapper la combinaison de touche CTRL-C. Si l'option -d a été spécifiée sur la ligne de commande, nous obtenons le même résultat: \begin{verbatim} o Initialising the simulator... Done! R00 R01 R02 R03 R04 R05 R06 R07 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 R08 R09 R10 R11 R12 R13 R14 R15 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 R16 R17 R18 R19 R20 R21 R22 R23 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 R24 R25 R26 R27 R28 R29 R30 R31 00000000 00000000 00000000 00000000 00000002 000027FF 00000002 00000000 Rg: 00000000 | Rd: 00000000 | Flag: 00000000 | PC: 00000000 Opcode: 0A, extension: 00, champ1: 00, champ2: 00, champ3: 00 00000000:0000000A - 00000000 - 00000000 > \end{verbatim} Cette interface nous présente l'ensemble des registres du CPU, ainsi que les quelques flags spéciaux. De plus, les champ de l'instruction suivante sont décodés, et la dernière ligne nous indique les trois mots mémoire pour le compteur ordinal en cours. Le prompt > nous invite à taper une commande parmi: \begin{verbatim} > Help: G: go P: Proceed R: display registers Q: quit \end{verbatim} Go stoppe le debugger et relance l'exécution du CPU. Proceed avance d'une instruction. Display registers réaffiche la page des registres, au cas où l'écrant ait été corrompu par l'exécution du programme. Enfin, quit permet de sortir immédiatement du simulateur.