lbf38 / mini-mips-project Goto Github PK
View Code? Open in Web Editor NEWProjet Architecture des Ordinateurs @ ENSTA Bretagne - 2A
Projet Architecture des Ordinateurs @ ENSTA Bretagne - 2A
J'aimerais générer une documentation doxygen automatiquement à partir de mes commentaires dans le code.
Pour cela, j'aimerais générer à la fois pour les fichiers python et les fichiers C.
Dans l'idée, j'ai créé deux fichiers de configuration distincts pour chacun des langages. Mais cela ne fonctionne pas. Il faut sûrement que j'ajoute d'autres éléments de configuration ou autres.
A regarder si j'ai le temps, plus tard.
Maintenant que tout fonctionne, il faut que je nettoie tous les fichiers et que je les documente.
Utilisation de la documentation doxygen pour les codes en C.
Regarder docstrings pour les codes en python.
Pour les exemples, on peut reprendre les exemples de moodle et les faire pour mon implémentation de l'assembleur et de l'ISS.
Une fois cela fait, on peut rendre le projet sur Moodle avant le 22 décembre 2022.
Same as Assembleur.py, need to refactor code of vm.c to be more readable and easier to grow from.
Moreover, this work will help me in the future to add the compiler part from Semester 4 course on Compiler
Après plusieurs essais infructueux, je ne parviens toujours pas à faire des boucles ou à utiliser les branchements pour des fonctions simples en assembleur.
La VM ne semble pas reconnaître les instructions de branchements lors de boucles alors que celle-ci fonctionne individuellement.
Mais en testant chacune des instructions (jmp, braz, branz), elles fonctionnent quand elles sont seules dans leur programme.
Peut-être que cela vient d'un problème de programmation en assembleur ? Je ne sais pas.
Cela peut également venir des opérateurs de comparaison qui fonctionnerait mal.. C'est bizarre.
Refactor all the Assembleur.py code to have a cleaner architecture and easier way to read files.
This is a work that would help me for the compiler part in next months (see in Semester 4 with the Compiler course)
La majorité de l'assembleur est fonctionnelle (pour ne pas dire la totalité). Cependant, avec le code ci-dessous qui est censé afficher "Hello World!" 5 fois, je ne sais pas comment gérer les données.
# print 5 times "Hello, world!"
add r2 r0 nb_iter # r2 <= @nb_iter
load r3 r2 0 # r3 <= mem[r2 + 0]
add r4 r0 0 # r4 <= 0
loop_for_start:
slt r5 r4 r3 # r5 <= (r4 < r3) ? 1 : 0
braz r5 loop_for_end # if (r5 == 0) {PC <= loop_for_end}
add r20 r0 my_string # r20 <= @my_string
scall 4 # print string @r20 to stdout
add r4 r4 1 # r4 <= r4 + 1
jmp r0 loop_for_start # PC <= @loop_for_start
loop_for_end:
stop # halt the machine
nb_iter:
5 # data: number 5
my_string:
"Hello, world!\n" # data: null terminated string
Le nb_iter
est bien géré. Seul le my_string
n'est pas bien géré.
Ainsi, j'ai identifié deux problèmes que je réunis ici car ils sont intrinsèquement liés :
my_string
ci-dessus) => partie assembleurA fixer :
With the power of unit testing, we can test every instruction that the Assembleur need to recognize.
It will automate much of the work to verify if all is working.
But, need to be cautious about how the code is written because tests will depend on the function and code architecture.
=> need more time to dig into these details.
Il faut que je reprenne l'assembleur pour vérifier que la création de tous les dossiers se fait bien lors de l'assemblage du code.
Par exemple, lorsqu'on lance la commande en ne mettant que le premier paramètre (le nom du fichier à compiler), il faut que l'assembleur crée le dossier bin
pour accueillir le fichier binaire assemblé.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.