Opérations de pile dans le 8085 : PUSH, POP et pointeur de pile
Le 8085 utilise une pile Last-In-First-Out (LIFO) en RAM externe, gérée par le Pointeur de Pile (SP) 16 bits.
PUSH rp / PSW
Action : SP ← SP – 2 ; M[SP] ← octet haut ; M[SP+1] ← octet bas.
Cycles : 12 T-states (rp) / 12 (PSW).
Exemple : PUSH B stocke B (haut) à SP, C (bas) à SP+1.
POP rp / PSW
Action : octet bas ← M[SP] ; octet haut ← M[SP+1] ; SP ← SP + 2.
Cycles : 10 T-states.
Exemple : POP H charge H depuis SP, L depuis SP+1.
Usages clés
- Adresse retour sous-routine : CALL empile PC ; RET dépile PC.
- Sauvegarde registres : Préserver registres à travers interruptions/sous-routines.
- Passage paramètres : Empiler args avant CALL ; dépiler à l'intérieur.
- Données temporaires : Résultats intermédiaires dans routines maths.
Initialisation
Toujours initialiser SP tôt : LXI SP, STACK_TOP (ex. 8000H). Pile grandit vers le bas depuis STACK_TOP.
Pas de vérification limites — débordement pile corrompt données ; sous-débordement lit n'importe quoi.
