Compare commits

..

2 commits

Author SHA1 Message Date
3efa8d5ef2 Merge Interpreteur serucise et non securise 2021-06-24 14:53:18 +02:00
95409eb5bf Interpreteur non sécurisé terminé 2021-06-18 14:05:19 +02:00

View file

@ -6,6 +6,8 @@
#define TAILLE_MEMOIRE (64) #define TAILLE_MEMOIRE (64)
#define TAILLE_PILE_APPELS (16) #define TAILLE_PILE_APPELS (16)
#define SECURISED (1)
/**************************************************/ /**************************************************/
/**************************************************/ /**************************************************/
@ -199,10 +201,17 @@ void execute() {
eip = programme[eip].param1 - 1; eip = programme[eip].param1 - 1;
} else if (programme[eip].instruction == RET) { } else if (programme[eip].instruction == RET) {
esp--; if (SECURISED) {
eip = pile[check_adresse_pile(esp)] - 1; esp--;
esp--; eip = pile[check_adresse_pile(esp)] - 1;
ebp = pile[check_adresse_pile(esp)]; esp--;
ebp = pile[check_adresse_pile(esp)];
} else {
int lastebp = ebp;
eip = mem[check_adresse(ebp - 1)] - 1;
ebp = mem[check_adresse(ebp - 2)];
mem[check_adresse(lastebp - 2)] = mem[check_adresse(lastebp)];
}
} else if (programme[eip].instruction == STOP) { } else if (programme[eip].instruction == STOP) {
if (programme[eip].param1 == 0) { if (programme[eip].param1 == 0) {