BlackDeeer / Projet-MIPS

Projet MIPS ESISAR
0 stars 0 forks source link

Explication du code de lecture d'instruction

Fonctionnement :

On récupère une instruction MIPS : "ADD $1 $2 $3"

On a préféré convertir d'abord tout en binaire plutot que de faire des décalages en décimal pour bien comprendre ce qu'il se passe.

Explication du main

Après avoir coder en hexadécimale notre ligne d'assembleur, il nous faut excécuter l'opération et modifier les registres et les mémoires en conséquences.

Première, on initialise les registres et la mémoire à zéro.

Puis on traduit le code hexadécimal de l'opération en binaire. Il faut récupérer l'opcode de l'opération pour l'envoyer dans la bonne fonction du fichier opération.

Si les 6 premiers bits de l'opcode sont vide, alors l'opcode se situe à la fin de la traduction binaire. Puis en fonction de l'opcode, on envoie la traduction binaire dans les fonctions associées aux fonctions.

Dans chaque fonction, on découpe le binaire en fonction des données à récupérer. Par exemple, on prend la valeur du registre RS qui est compris entre les bits 6 à 11. On traduit ce petit tableau binaire en un entier. Puis on lit ce qui se trouve en registre avec la fonction lecture_reg.

On écrit enfin l'état des registres et mémoire dans un fichier text "state".