diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/archi.tex | 4 | ||||
-rw-r--r-- | doc/conclusion.tex | 6 | ||||
-rw-r--r-- | doc/manuel.tex | 12 | ||||
-rw-r--r-- | doc/probs.tex | 30 |
4 files changed, 40 insertions, 12 deletions
diff --git a/doc/archi.tex b/doc/archi.tex index 705ccb8..20a1df8 100644 --- a/doc/archi.tex +++ b/doc/archi.tex @@ -73,8 +73,8 @@ \clearemptydoublepage \input{exemples} \clearemptydoublepage -\chapter{Code Source} -\lstset{language=C,basicstyle=\small} +\chapter{Code source} +\lstset{language=C,basicstyle=\scriptsize} \input{source} \clearemptydoublepage diff --git a/doc/conclusion.tex b/doc/conclusion.tex index 70bb052..263ea97 100644 --- a/doc/conclusion.tex +++ b/doc/conclusion.tex @@ -2,6 +2,12 @@ \addcontentsline{toc}{chapter}{Conclusion} \markboth{CONCLUSION}{CONCLUSION} + + +A MODIFIER + + + Nous avons présenté ici nos idées pour la conception du projet. Ce document constitue donc un premier "cahier des charges". Nous tenterons de nous y tenir le plus possible afin de mener le projet à bien. Toutefois, nous diff --git a/doc/manuel.tex b/doc/manuel.tex index 78e9802..d5c7b98 100644 --- a/doc/manuel.tex +++ b/doc/manuel.tex @@ -2,4 +2,14 @@ %lignes de commandes des progs -%commandes du mode debug du simul
\ No newline at end of file +%commandes du mode debug du simul + +\section{L'Assembleur : compilo} + +\section{L'Editeur de liens : linker} + +\section{Le Simulateur : simul } + +\subsection{la ligne de commande} + +\subsection{le mode interactif}
\ No newline at end of file diff --git a/doc/probs.tex b/doc/probs.tex index 6ea86d9..220edad 100644 --- a/doc/probs.tex +++ b/doc/probs.tex @@ -1,33 +1,45 @@ -\chapter{Description des problèmes rencontrés ainsi que des solutions technologiques employées pour y remédier} +\chapter{Description des solutions technologiques} \section{Parseur et Meta-Parseur} + \section{Assembleur} +%description du meta langage +%format du fichier instructions.txt +%description du langage asm... + \section{Editeur de liens} %mecanisme de relocation \section{Operations ALU} %algos ALU lente -L'ALU est divisée en deux parties : La première qui fait les opérations sur les entiers et la deuxième qui se comporte comme un microprocesseur c'est- +L'ALU est divisée en deux parties : La première qui fait les opérations sur les entiers et la deuxième qui se comporte comme un microprocesseur +c'est-à-dire qu'elle fait des calculs en binaire pour effectuer les différentes opérations qui lui sont demandées. \paragraph{Descriptifs des opérations sur les entiers :} -Ces fonctions ont été écrites pour pouvoir tester l'Unité de contrôle, elles sont implementées en C, ce qui permet d'utiliser les opérations tradition +Ces fonctions ont été écrites pour pouvoir tester l'Unité de contrôle, elles sont implementées en C, ce qui permet d'utiliser les opérations +traditionnelles (comme l'addition, soustraction, multiplication, division, ) de manière simplifiée et relativement rapide. \paragraph{Descriptifs des opérations en binaire :} -Toutes les fonctions sont écrites sur la meme base, on sait qu'il y a au maximum 32 bits, donc pour faire les opérations, il suffit de parcourir les 3 -Pour les fonctions de l'addition et de la soustraction, nous faisons comme dit précédemment les opérations bits après bits en commencant par le bit de -En ce qui concerne la multiplication, nous utilisons l'algorithme que nous avons apris a l'école primaire : c'est-à-dire la multiplication d'un facteu -Pour la division, nous utilisons comme pour la multiplication deux registres, un pour stocker le résultat et l'autre pour y mettre le reste de la divi +Toutes les fonctions sont écrites sur la meme base, on sait qu'il y a au maximum 32 bits, donc pour faire les opérations, il suffit de parcourir +les 32 bits et pour cela on utilise une simple boucle pour (for en C) qui parcourt les éléments bit après bit. +Pour les fonctions de l'addition et de la soustraction, nous faisons comme dit précédemment les opérations bits après bits en commencant par le +bit de poid faible et terminant sur le bit de poid fort en gérant entre temps une retenue qui si lors de la dernière itération se trouve encore +être utilisée renvoie un flag d'erreur de retenue qui sera géré par le simulateur et qui dans ce cas retourne tout de meme le début du résultat, +et si tous c est bien passe, le résultat sera stocké dans le registre correspondant. +En ce qui concerne la multiplication, nous utilisons l'algorithme que nous avons apris a l'école primaire : c'est-à-dire la multiplication d'un +facteur par un nombre de l'autre, puis on additionne les résultats successifs. Si jamais lors de l'addition il y a dépassement nous utilisons un +deuxième registre qui sera incrémenté de la valeur demandée. +Pour la division, nous utilisons comme pour la multiplication deux registres, un pour stocker le résultat et l'autre pour y mettre le reste de la +division et pour ce faire on utilise l'algorithme de notre jeunesse. Pour les deux fonctions de décalage, nous décalons les bits du nombre demandé et on remplace les bits manquants par 0. - - \section{Contrôleur} %decodage, execution, gestion de la ram |