push avant de manger
This commit is contained in:
@@ -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]){
|
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 */
|
short int operation = instruction.instruct.codeOp; /* Pour rendre le code un peu plus lisible */
|
||||||
int position = positions[player];
|
int position = positions[player];
|
||||||
printf("Position dans le exec: %d\n", position);
|
printf("Position dans le exec: %d\n", position);
|
||||||
@@ -97,6 +98,9 @@ void execute_instruction(union mars_instruction instruction, int player, struct
|
|||||||
}
|
}
|
||||||
|
|
||||||
case SUB:{
|
case SUB:{
|
||||||
|
int premiere_valeur;
|
||||||
|
int first_pos, next_pos;
|
||||||
|
union mars_instruction first_instruction, next_instruction;
|
||||||
|
|
||||||
}
|
}
|
||||||
case JMP: {
|
case JMP: {
|
||||||
|
@@ -1,11 +1,13 @@
|
|||||||
#ifndef MARS_TYPES_H
|
#ifndef MARS_TYPES_H
|
||||||
#define MARS_TYPES_H
|
#define MARS_TYPES_H
|
||||||
|
|
||||||
|
/* Structure utilisée pour la ram */
|
||||||
struct adresse {
|
struct adresse {
|
||||||
int player;
|
int player; /* Permet de différencier les joueurs */
|
||||||
long long instruction; /* Instruction en long long */
|
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 {
|
union mars_instruction {
|
||||||
long long instructLL;
|
long long instructLL;
|
||||||
struct
|
struct
|
||||||
@@ -22,6 +24,8 @@ union mars_instruction {
|
|||||||
/* Listes des opérations possibles */
|
/* Listes des opérations possibles */
|
||||||
|
|
||||||
enum liste_operations {DAT, MOV, ADD, SUB, JMP, JMZ, JMG, DJZ, CMP};
|
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};
|
enum modes_adressage {IMMEDIAT, DIRECT, INDIRECT};
|
||||||
|
|
||||||
#endif
|
#endif
|
@@ -14,3 +14,9 @@ On a travaillé sur la partie qui vient décoder le fichier .butt en instruction
|
|||||||
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É.
|
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.
|
Reference in New Issue
Block a user