ajout de l'instruction JMP + types adressages
This commit is contained in:
11
mars_main.c
11
mars_main.c
@@ -11,7 +11,7 @@ void initialiser_memoire(){
|
||||
|
||||
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]){
|
||||
void execute_instruction(union mars_instruction instruction, int player, struct adresse memoire[TAILLE_MEM], int position[2]){
|
||||
short int operation = instruction.instruct.codeOp; /* Pour rendre le code un peu plus lisible */
|
||||
|
||||
switch (operation){
|
||||
@@ -22,6 +22,15 @@ void execute_instruction(union mars_instruction instruction, int player, struct
|
||||
case SUB:
|
||||
|
||||
case JMP:
|
||||
short int modeadresse = instruction.instruct.modeAddrA;
|
||||
|
||||
if (modeadresse == IMMEDIAT){
|
||||
position[player] = (instruction.instruct.ArgA + TAILLE_MEM) % TAILLE_MEM;
|
||||
} else if (modeadresse == DIRECT) {
|
||||
position[player] += (instruction.instruct.ArgA + TAILLE_MEM) % TAILLE_MEM;
|
||||
} else if (modeadresse == INDIRECT){
|
||||
/* Lire contenu mémoire à l'adresse demandée (DAT) puis aller à position actuelle + num contenu dans l'adresse relative */
|
||||
}
|
||||
|
||||
case DJZ:
|
||||
|
||||
|
Reference in New Issue
Block a user