#include #include #include #include /* Utilisé pour obtenir une adresse de démarrage aléatoire */ #include"mars_types.h" /* importe les types utilisés dans le programme */ #include"options.h" /* Inclus les options du programme */ void initialiser_memoire(); /* Va initialiser la mémoire en plaçant les deux programmes dans des adresses aléatoires */ int calculer_position(); /* Va permettre de calculer la position à laquelle le programme doit effectuer une action*/ void execute_instruction(union mars_instruction instruction, int player, struct adresse memoire[8000], int position[2]){ short int operation = instruction.instruct.codeOp; if(operation == MOV){ /* Transfère contenu adresse A à Adresse B */ printf("on a demandé un mov noice\n"); } else if (operation == ADD){ /* Ajoute contenu adresse A à adresse B */ printf("test"); } else if (operation == SUB){ /* Soustrait contenu adresse A à l'adresse B */ } else if (operation == JMP){ /* On saute à la position demandée par l'instruction */ } else if (operation == JMZ){ /* Transferer execution à adresse A si contenu adresse b = 0*/ } else if (operation == JMG){ /* Transferer execution à l'adresse A si contenu B > 0 */ } else if (operation == DJZ){ /* Retrancher 1 du contenu de l'adresse B et sauter à l'adresse A si seulement resultat = 0 */ }else if (operation == CMP){ /* Compare deux adresses, si différents sauter l'instruction suivante */ }else if (operation == DAT){ /* Cette instruction ne peut pas être exécutée, elle permet de contenir une valeur */ } } 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 */ if (argc < 3){ printf("Vous n'avez pas rentrez assez d'arguments \n"); printf("Exemple d'utilisation: %s fichier1.cass fichier2.cass\n", argv[0]); return EXIT_FAILURE; } else if (argc > 3){ printf("Vous avez utilisé trop d'arguments \n"); printf("Exemple d'utilisation: %s fichier1.cass fichier2.cass\n", argv[0]); return EXIT_FAILURE; } FILE* fichier1; FILE* fichier2; fichier1 = fopen(argv[1], "r"); fichier2 = fopen(argv[2], "r"); if(fichier1 == NULL || fichier2 == NULL){ printf("Erreur d'ouverture du fichier !\n"); return EXIT_FAILURE; } printf("Fichier 1: %s\n", argv[1]); printf("Fichier 2: %s\n", argv[2]); /* To do: faire le programme qui lit le fichier compilé */ fclose(fichier1); fclose(fichier2); union mars_instruction to_do; to_do.instruct.codeOp = 1; to_do.instruct.ArgA = 7909; 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; }