Contenido>Indice>Intro CursoC51

UBICACIÓN DE LA PILA


El linker L51, en ausencia de indicaciones en sentido contrario, asigna a la pila el mayor tamaño posible. Por ello, después de colocar los registros, las variables de tipo bit, la pila compilada, y las variables data e idata, posiciona el apuntador de pila (stack pointer) en la primera dirección de idata disponible. En caso de que se utilice un 8032, o cualquier otro derivado con 128 bytes de RAM interna por encima de la dirección 0x7f, también se puede utilizar este espacio para la pila.

?C_C51STARTUP   SEGMENT   CODE
?STACK          SEGMENT   IDATA ;Segmento en RAM de acceso indirecto

             RSEG     ?STACK    ; Reserva un byte
             DS       1
             EXTRN    CODE (?C_START)
             PUBLIC         ?C_STARTUP
             CSEG     AT    0
?C_STARTUP:  LJMP     STARTUP1

             RSEG     ?C_C51STARTUP
STARTUP1:
             MOV      SP,#?STACK-1 ; Apunta con SP a la pila
             LJMP     ?C_START     ; Salto a la sección de inicialización

 


   Contenido>Indice>Intro CursoC51