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 |