Clean
This commit is contained in:
parent
b6f5abf852
commit
25efac091c
2 changed files with 3 additions and 48 deletions
45
ReadMe.md
45
ReadMe.md
|
@ -1,45 +0,0 @@
|
|||
# Processeur sécurisé - Interpreteur
|
||||
|
||||
|
||||
|
||||
Afin de pouvoir tester le code que nous avons compilé depuis le C avec notre compilateur, nous avons crée un interpreteur pour simuler l'execution du code assembleur
|
||||
|
||||
# Utilisation du cross assembleur
|
||||
|
||||
Un Makefile a été inclus au sous module Interpreteur afin de simplifier son utilisation. Ainsi, afin de compiler tout l'Interpreteur, il suffit de de rentrer la commande.
|
||||
``` bash
|
||||
make build
|
||||
```
|
||||
Pour lancer l'Interpretation du code qui aura été préalablement généré avec notre compilateur, il suffit de lancer la commande
|
||||
``` bash
|
||||
cat FicherASM | ./rondoudou_interpreter
|
||||
```
|
||||
Les prints et gets du programme auront lieu dans le terminal.
|
||||
|
||||
|
||||
|
||||
NB : Il est possible de rester au niveau du projet général. Un Makefile est aussi présent. Pour compiler l'Interpreteur uniquement :
|
||||
``` bash
|
||||
make compile QUOI="interpreteur"
|
||||
```
|
||||
Pour compiler le projet en entier :
|
||||
``` bash
|
||||
make compile QUOI="all"
|
||||
```
|
||||
|
||||
Pour interpreter le fichier ***file_name.memasm*** :
|
||||
``` bash
|
||||
make exec SOURCE="file_name" QUOI="interprete"
|
||||
```
|
||||
Pour compiler, cross assembler et interpreter le fichier ***file_name.c*** et générer les fichiers ***file_name.memasm***, ***file_name.regasm***, ***file_name.bin***, et, copier le code binaire dans le fichier ***../Processeur/Processeur.srcs/sources1/new/MemoireInstructions.vhd*** :
|
||||
``` bash
|
||||
make exec SOURCE="file_name" QUOI="all"
|
||||
```
|
||||
|
||||
# Implémentation
|
||||
|
||||
L'implémentation a été réalisée grâce à Lex/Yacc. Le parseur charge le programme dans un buffer, puis une méthode d'execution est lancée.
|
||||
|
||||
|
||||
|
||||
|
|
@ -6,7 +6,7 @@
|
|||
#define TAILLE_MEMOIRE (64)
|
||||
#define TAILLE_PILE_APPELS (16)
|
||||
|
||||
#define SECURISED (1)
|
||||
#define SECURED (1)
|
||||
|
||||
|
||||
/**************************************************/
|
||||
|
@ -194,7 +194,7 @@ void execute() {
|
|||
printf("%c", mem[check_adresse(ebp + programme[eip].param1)]);
|
||||
|
||||
} else if (programme[eip].instruction == CALL) {
|
||||
if (SECURISED) {
|
||||
if (SECURED) {
|
||||
pile[check_adresse_pile(esp)] = ebp;
|
||||
esp++;
|
||||
pile[check_adresse_pile(esp)] = eip + 1;
|
||||
|
@ -209,7 +209,7 @@ void execute() {
|
|||
}
|
||||
|
||||
} else if (programme[eip].instruction == RET) {
|
||||
if (SECURISED) {
|
||||
if (SECURED) {
|
||||
esp--;
|
||||
eip = pile[check_adresse_pile(esp)] - 1;
|
||||
esp--;
|
||||
|
|
Loading…
Reference in a new issue