« Fonctionnement d'un ordinateur/Les jeux d'instructions » : différence entre les versions

m
Ces jeux d’instructions ont des instructions pour ajouter des opérandes dans la FIFO/LIFO ou en retirer. Dans ce qui va suivre, nous allons prendre l'exemple d'une machine à pile, mais il existe des équivalents pour les machines à file. Dans les grandes lignes, il y a deux instructions principales nommées PUSH et POP pour l'ajout et le retrait d'opérandes dans la pile, ainsi que quelques instructions annexes sur certaines machines. Les machines à file possèdent des instructions équivalentes, à savoir deux instructions Queue et Unqueue pour ajouter ou retirer une opérande dans la file, ainsi que quelques instructions annexes. Voici les deux instructions principales de gestion de la pile, présentes sur toutes les architectures à pile :
* L'instruction PUSH permet d'empiler une donnée. Elle prend l'adresse de la donnée à empiler, charge la donnée, et met à jour le stack pointer.
 
|[[File:Instruction Push.png|centre|vignette|upright=2|Instruction Push.]]
 
* L'instruction POP dépile la donnée au sommet de la pile, la stocke à l'adresse indiquée dans l'instruction, et met à jour le stack pointer.
 
|[[File:Instruction DupPop.png|centre|vignette|upright=2|Instruction DupPop.]]
{|class="wikitable"
 
|-
Vu qu'une instruction dépile ses opérandes, on ne peut pas les réutiliser. Ceci dit, certaines instructions ont été inventées pour limiter la casse : on peut notamment citer l'instruction DUP, qui copie le sommet de la pile en deux exemplaires.
|[[File:Instruction Push.png|Instruction Push.]]
 
|-
|[[File:Instruction PopDup.png|centre|vignette|upright=2|Instruction PopDup.]]
|}
 
Vu qu'une instruction dépile ses opérandes, on ne peut pas les réutiliser. Ceci dit, certaines instructions ont été inventées pour limiter la casse : on peut notamment citer l'instruction DUP, qui copie le sommet de la pile en deux exemplaires. On peut aussi citer l'instruction SWAP, qui échange deux données dans la pile.
 
|[[File:Instruction Swap.png|centre|vignette|upright=2|Instruction Swap.]]
{|class="wikitable"
|-
|[[File:Instruction Dup.png|Instruction Dup.]]
|-
|[[File:Instruction Swap.png|Instruction Swap.]]
|}
 
Enfin, on trouve des instructions pour sauvegarder la totalité de la pile ou de la file. Ces instructions servent surtout pour les appels de fonctions/sous-programmes, chacun d'entre eux demandant de vider complètement les registres du processeur, ainsi que la file ou la pile. Ils sont l'équivalent sur ces architectures des instructions de spilling, qui sauvegardent la totalité des registres du processeur en mémoire RAM, pour les récupérer à la fin de l'éxecution de la fonction.
39 497

modifications