You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
Mes problèmes de branchements venaient du fait que j'avais mal géré les adresses au niveau de la fonction run().
Le PC (Program Counter) était augmenté en fin de boucle après évaluation. Or, pour garder une cohérence avec les cours et pour le flux des données, il est plus simple d'incrémenter le PC lors de la récupération des instructions.
Ainsi, une fois cette erreur corrigée et le remplacement des appels aux registres (je mettais rs au lieu de registres[rs]), tout fonctionne !
L'assembleur reconnaît les instructions du fichier instruction.md et les transforme en hexadécimal/binaire.
Puis, la VM (ISS) reconnaît les instructions et les exécute en reconnaissant les opcodes et chacune des parties de l'instruction !
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.
The text was updated successfully, but these errors were encountered: