From 3e28397cfc5a61ea4311db1c0c59b302dc2eb743 Mon Sep 17 00:00:00 2001 From: Yvan Date: Fri, 17 Dec 2021 14:15:33 +0100 Subject: [PATCH] aaa --- mars_main.c | 14 +++++++------- mars_types.h | 10 +++++----- readme.md | 2 ++ 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/mars_main.c b/mars_main.c index 8bb5de2..8c8daf1 100644 --- a/mars_main.c +++ b/mars_main.c @@ -33,14 +33,15 @@ void execute_instruction(union mars_instruction instruction, int player, struct } } case DJZ: - + /* */ case CMP: - + /* Compare deux valeurs dans la mémoire */ case DAT: - + /* Instruction qui rapporte des données */ default: break; } + printf("Position après exécution: %d\n", position[player]); } @@ -48,7 +49,7 @@ int main(int argc, char* argv[]){ srand(time(NULL)); /* Initialise le pseudo aléatoire pour tout le programme */ struct adresse memoire[TAILLE_MEM]; // Initialisation de la mémoire 0->7999 - int position[2] = {0,0}; /* Position des joueurs */ + int position[2] = {0,10}; /* Position des joueurs */ if (argc < 3){ printf("Vous n'avez pas rentrez assez d'arguments \n"); @@ -80,13 +81,12 @@ int main(int argc, char* argv[]){ fclose(fichier2); union mars_instruction to_do; - to_do.instruct.codeOp = 1; - to_do.instruct.ArgA = 7909; + to_do.instruct.codeOp = 0; + to_do.instruct.ArgA = 753; to_do.instruct.ArgB = 100; to_do.instruct.modeAddrA = 1; to_do.instruct.modeAddrB = 2; printf("Valeur instruction: %lld\n", to_do.instructLL); - execute_instruction(to_do, 1, memoire, position); return EXIT_SUCCESS; } diff --git a/mars_types.h b/mars_types.h index 3593a19..7eaaf69 100644 --- a/mars_types.h +++ b/mars_types.h @@ -10,12 +10,12 @@ union mars_instruction { long long instructLL; struct { - unsigned char codeOp; - unsigned char modeAddrA; - unsigned char modeAddrB; - unsigned char case_remplissage; /* Permet d'éviter un décalage dans le fichier */ + short int ArgB; short int ArgA; - short int ArgB; + unsigned char modeAddrB; + unsigned char modeAddrA; + unsigned char case_remplissage; /* Permet d'éviter un décalage dans le fichier */ + unsigned char codeOp; } instruct; }; diff --git a/readme.md b/readme.md index da52729..684b95a 100644 --- a/readme.md +++ b/readme.md @@ -12,3 +12,5 @@ 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