This commit is contained in:
2021-12-17 14:15:33 +01:00
parent 109ea267a9
commit 3e28397cfc
3 changed files with 14 additions and 12 deletions

View File

@@ -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;
}

View File

@@ -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 ArgA;
short int ArgB;
short int ArgA;
unsigned char modeAddrB;
unsigned char modeAddrA;
unsigned char case_remplissage; /* Permet d'éviter un décalage dans le fichier */
unsigned char codeOp;
} instruct;
};

View File

@@ -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É.