Fixed a few mistakes in cmp and sgbd.

This commit is contained in:
Delalande Ivan 2012-06-22 20:03:12 +02:00
parent eb2e07e821
commit b761de252d
5 changed files with 25 additions and 28 deletions

View file

@ -79,8 +79,8 @@ sur fonction).
certaine étape est réalisée.
Plus on fait la liaison tôt, moins le code est flexible, mais plus c'est
efficasse, mais à l'inverse plus on le fait tard, plus c'est réalisé tard, plus
c'est flexible, mais c'est moins efficasse.
efficace, mais à l'inverse plus on le fait tard, plus c'est réalisé tard, plus
c'est flexible, mais c'est moins efficace.
Un bon compromis serait sans doute Java ou C\# grâce à l'utilisation de machine
virtuelle qui permet l'introspection ou la compilation à la volée.

View file

@ -52,7 +52,7 @@ mémoire réservé au noyau.)
Une activation désigne une simple instance d'une fonction.
Toutes les variables locales sont libérés automatiquement, c'est plus
efficasse que de faire appel à \verb+malloc+.
efficace que de faire appel à \verb+malloc+.
\subsubsection{Contenu}
@ -79,7 +79,7 @@ précédent.
Lié aux exceptions en C++.
Quand on lève des exceptions, on balance des pointeurs, du coup, on risque
Quand on lève des exceptions, on balance des pointeurs, du coup, on risque de
perdre cette mémoire.\\
Dans le nouveau standard, il est plutôt conseillé d'utiliser

View file

@ -18,7 +18,7 @@ partie est cachée (ou utilisé pour le passage d'arguments avec les fenêtres).
On ne peut faire de l'arithmétique que sur des registres (pas directement en
mémoire).
Les fonctions \verb+load+ et \verb+store+ sont relatives à un registres.
Les fonctions \verb+load+ et \verb+store+ sont relatives à un registre.
Il y a peu d'instructions et elles ne font qu'une seule action à la fois, sans
effet de bord.
@ -33,7 +33,7 @@ Le premier registre contient toujours la constante 0. Le registre 1 est réserv
à l'assembleur et les registres 26 et 27 sont quant à eux réservés au système
d'exploitation.\\
Les derniers registres gérent le stack pointer (29), le frame pointer (30) et
Les derniers registres gèrent le stack pointer (29), le frame pointer (30) et
l'adresse de retour (31).\\
Comme en Sparc et dans la norme Épita, il n'est possible de passer que 4
@ -57,7 +57,7 @@ afin d'avoir une plus grande précision.\\
Les opérations logiques (\verb+and+, \verb+andi+, \verb+not+, \verb+rol+,
\verb+sll+, \ldots) font les mêmes choses qu'en C, mais sur les mots binaires.
On a des instruction de comparaison~: \verb+seq+, \verb+sge+, \verb+sgt+,
On a des instructions de comparaison~: \verb+seq+, \verb+sge+, \verb+sgt+,
\ldots\\
On a deux types de branchement inconditionnel (vers une étiquette ou une
@ -73,7 +73,7 @@ On a aussi des instructions de branchement conditionnel (\verb+bge+, \ldots).
Il y a aussi des instructions qui permettent de contrôler le processeur
(\verb+syscall+ qui permet de déclencher des appels système, \verb+rfe+ qui
restaure le registre de statut, \verb+break+ qui déclenche une exception
particulière et bien sur \verb+nop+).\\
particulière et bien sûr \verb+nop+).\\
On a plein d'instruction de chargement \verb+ld+, \verb+lw+, \verb+ulw+, \ldots
mais bon, il y en a tellement qu'il y en a forcément une qui charge ce qu'on
@ -86,7 +86,7 @@ certaines instructions. Il utilise des registres particuliers qu'il faut penser
à définir. Pareil pour les flags, il en utilise d'autres. Les instructions
flottantes sont sur 32 ou 64 bits (\verb+.s+ single (32 bits) ou \verb+.d+
double (64 bits) à la fin des instructions et puis il y a \verb+.w+ quand on
utilise un mot utilisé pour les convertions (un mot c'est un entier par
utilise un mot utilisé pour les conversions (un mot c'est un entier par
définition)).\\
On remarque qu'il n'y a donc pas beaucoup d'instructions :p
@ -130,4 +130,4 @@ case donnée).
D'autres traductions sont possibles (avec plus d'opérations ou avec des
instructions plus complexes). Le mieux étant d'avoir le moins d'instructions
couteuses.
coûteuses.