aaa
This commit is contained in:
14
mars_main.c
14
mars_main.c
@@ -33,14 +33,15 @@ void execute_instruction(union mars_instruction instruction, int player, struct
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
case DJZ:
|
case DJZ:
|
||||||
|
/* */
|
||||||
case CMP:
|
case CMP:
|
||||||
|
/* Compare deux valeurs dans la mémoire */
|
||||||
case DAT:
|
case DAT:
|
||||||
|
/* Instruction qui rapporte des données */
|
||||||
default:
|
default:
|
||||||
break;
|
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 */
|
srand(time(NULL)); /* Initialise le pseudo aléatoire pour tout le programme */
|
||||||
|
|
||||||
struct adresse memoire[TAILLE_MEM]; // Initialisation de la mémoire 0->7999
|
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){
|
if (argc < 3){
|
||||||
printf("Vous n'avez pas rentrez assez d'arguments \n");
|
printf("Vous n'avez pas rentrez assez d'arguments \n");
|
||||||
@@ -80,13 +81,12 @@ int main(int argc, char* argv[]){
|
|||||||
fclose(fichier2);
|
fclose(fichier2);
|
||||||
|
|
||||||
union mars_instruction to_do;
|
union mars_instruction to_do;
|
||||||
to_do.instruct.codeOp = 1;
|
to_do.instruct.codeOp = 0;
|
||||||
to_do.instruct.ArgA = 7909;
|
to_do.instruct.ArgA = 753;
|
||||||
to_do.instruct.ArgB = 100;
|
to_do.instruct.ArgB = 100;
|
||||||
to_do.instruct.modeAddrA = 1;
|
to_do.instruct.modeAddrA = 1;
|
||||||
to_do.instruct.modeAddrB = 2;
|
to_do.instruct.modeAddrB = 2;
|
||||||
printf("Valeur instruction: %lld\n", to_do.instructLL);
|
printf("Valeur instruction: %lld\n", to_do.instructLL);
|
||||||
execute_instruction(to_do, 1, memoire, position);
|
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
10
mars_types.h
10
mars_types.h
@@ -10,12 +10,12 @@ union mars_instruction {
|
|||||||
long long instructLL;
|
long long instructLL;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
unsigned char codeOp;
|
short int ArgB;
|
||||||
unsigned char modeAddrA;
|
|
||||||
unsigned char modeAddrB;
|
|
||||||
unsigned char case_remplissage; /* Permet d'éviter un décalage dans le fichier */
|
|
||||||
short int ArgA;
|
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;
|
} instruct;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -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.
|
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.
|
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É.
|
Reference in New Issue
Block a user