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
|