User: alciro    User
 Original    Translate to:  Deutsch  English  Français  中文  
 

Microcontroladores 8051

5.3. Pile ou pile

Pile ou pile est une structure de données avec accès à la méthode LIFO (Last In First Out), dernier entré, premier sorti. Comme similitude peut être associée à un stockage dans une pile de livres, qui sont stockés sur l'autre, de nouveaux éléments sont empilés sur le dernier, et son frère sont enlevés dernière est enlevée pour être gerbé.

Ce type de structure de données est facile de développer des systèmes de microprocesseurs et est utile pour travailler avec des listes de données et est essentielle pour le fonctionnement interne du microprocesseur dans les sous-programmes et les interruptions.

Certaines puces peuvent avoir l'intérieur de la pile, ce qui représente une très rapide mais de taille limitée, la plupart des microprocesseurs ont la pile dans la mémoire externe, ce qui offre une grande capacité de stockage et de contrôle de l'emplacement, bien que l'accès plus lent.

5.3.1. pointeur de pile (stack pointer)

Le pointeur de pile SP (pointeur de pile), comme son nom l'indique est un pointeur d'enregistrement à l'emplacement mémoire où la pile. Dans la famille 8051 registre SP est situé dans le 81F mémoire SFR.

Lorsque vous effectuez une réinitialisation du registre SP est automatiquement réglée à la valeur de 07H, de sorte que la pile est définie par défaut dans la position de 08H, un domaine qui est utilisé par les dossiers des banques. Il est conseillé de changer la batterie dans un autre domaine de la mémoire, par exemple, 30H position (en dehors de l'enregistrement). Pour placer le pointeur de pile est défini comme la première déclaration du programme:

MOV SP,#2FH ; Situar el puntero del stack en la posición 30H

pointeur de pile (stack pointer)

5.3.2. PUSH

L'instruction PUSH, situé sur la pile le contenu de l'adresse, d'abord à augmenter le pointeur de pile, puis suivre le contenu de l'adresse est copié dans la RAM indique le pointeur de pile SP.

PUSH Dir Instruction

1 º
(SP) = (SP) +1 Augmentation pointeur de pile sur la position suivante
2 º
((SP)) = (Adresse)
Mise en place de la pile (adresse pointée par SP) de gestion de contenu

Exemple:

MOV A,#3 ; Cargar el acumulador con la constante 3
MOV B,#5 ; Cargar el registro B con la constante 5
...
...
PUSH A ; Situar en el Stack el contenido del Acumulador
PUSH B ; Situar en el Stack el contenido del registro B

instruction PUSH

5.3.3. POP

Instruction pop lit le contenu de l'adresse de la pile indique le SP (pointeur de pile) et le place dans l'adresse indiquée, puis décrémente le pointeur de pile SP de quitter le poste.

Dir instruction pop

1 º
  (Adresse) = ((SP))
Rappelle le contenu de l'adresse de la pile (pointée par SP)
2 º
  (SP) = (SP) -1 Pointeur de pile décrémentée à la position précédente

Il convient de garder à l'esprit que pour le bon fonctionnement de la pile, les dernières données qui est entré doit être le premier à se redresser, si nous nous concentrons sur l'exemple ci-dessus, a été placé sur la pile le contenu du registre A et puis B, lors de la récupération des données doit être fait dans l'ordre inverse est entré, premier B puis A.

Exemple:

...
...
POP B ; Recupera en el registro B el contenido del Stack
POP A ; Recupera en el acumulador el contenido del Stack

instruction POP
Loading
copyright © 2007-2024  www.alciro.org  All rights reserved.         
Share |