From b7e6ae7e191ec2daa47dc96eed81740a45487773 Mon Sep 17 00:00:00 2001 From: Yvan Date: Fri, 17 Dec 2021 19:29:54 +0100 Subject: [PATCH] push avant de manger --- mars_main.c | 6 +++++- mars_types.h | 6 +++++- readme.md | 8 +++++++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/mars_main.c b/mars_main.c index 382e81f..764589f 100644 --- a/mars_main.c +++ b/mars_main.c @@ -33,6 +33,7 @@ int calculer_position(int posActuelle, short int modeAddr, short int valeur, str } void execute_instruction(union mars_instruction instruction, int player, struct adresse memoire[TAILLE_MEM], int positions[2]){ + /* Permet d'executer les instructions des virus */ short int operation = instruction.instruct.codeOp; /* Pour rendre le code un peu plus lisible */ int position = positions[player]; printf("Position dans le exec: %d\n", position); @@ -97,7 +98,10 @@ void execute_instruction(union mars_instruction instruction, int player, struct } case SUB:{ - + int premiere_valeur; + int first_pos, next_pos; + union mars_instruction first_instruction, next_instruction; + } case JMP: { short int modeadresse = instruction.instruct.modeAddrA; diff --git a/mars_types.h b/mars_types.h index 7eaaf69..dfce94b 100644 --- a/mars_types.h +++ b/mars_types.h @@ -1,11 +1,13 @@ #ifndef MARS_TYPES_H #define MARS_TYPES_H +/* Structure utilisée pour la ram */ struct adresse { - int player; + int player; /* Permet de différencier les joueurs */ long long instruction; /* Instruction en long long */ }; +/* Permet de transformer le long long en une structure et inversement. Cela nous permet de travailler plus rapidement sur la compilation des virus */ union mars_instruction { long long instructLL; struct @@ -22,6 +24,8 @@ union mars_instruction { /* Listes des opérations possibles */ enum liste_operations {DAT, MOV, ADD, SUB, JMP, JMZ, JMG, DJZ, CMP}; + +/* Les différents types d'adressages utilisés par les fichiers des virus non compilés */ enum modes_adressage {IMMEDIAT, DIRECT, INDIRECT}; #endif \ No newline at end of file diff --git a/readme.md b/readme.md index 684b95a..f8d5c0b 100644 --- a/readme.md +++ b/readme.md @@ -13,4 +13,10 @@ Dépot de la saé de dev 1.1: Corewar On a travaillé sur la partie qui vient décoder le fichier .butt en instructions lisibles par le programme MARS. Pour cela on a utilisé un `union` qui nous permet d'utiliser le type `struct` pour rendre plus facile la création des instructions en "binaire" et le décodage des instructions. -Il se peut que les instructions ne soient pas traduites de la même façon que dans les exemples envoyés dans le fil SAÉ. \ No newline at end of file +Il se peut que les instructions ne soient pas traduites de la même façon que dans les exemples envoyés dans le fil SAÉ. + +# Qu'est-ce qu'il manque pour que le projet fonctionne parfaitement ? + +Pour que le projet fonctionne parfaitement, il faudrait que la partie compilation puisse mieux traduire le fichier `.ass`. Il nous manque aussi une fonction pour écrire les décimauux dans un fichier `.mars`. + +La fonction qui lit le fichier `.mars` n'a pas pu être vraiment implémentée pour l'instant. \ No newline at end of file