Disposition de la mémoire pour l'Amiga
La disposition de la mémoire d'un programme utilisateur chargé ressemble à celle normalement utilisée sur l'Amiga. Il y a trois aspects distincts :
- Code : tout votre code et le code d'exécution
- Données : utilisées pour les constantes structurées
- BSS : utilisé pour la zone global
De plus, lorsqu'un programme démarre, il alloue deux autres zones de mémoire :
- Pile : utilisée pour entreposer des variables locales, des valeurs temporaires et pour le couplage de procédures. La taille de la pile peut être définie à l'aide du premier paramètre de la directive du compilateur $M.
- Tas : la zone de mémoire utilisée pour les appels aux procédures NEW et GetMem de Pascal. La taille du tas sera comprise entre les paramètres hmin et hmax de la directive $M avec au moins des octets libres (le dernier paramètre à $M) restant pour le système d'exploitation et les autres programmes.
Les variables suivantes sont définies par le code d'initialisation :
Nom | Description |
---|---|
HeapOrg | Cette variable permet d'indiquer un pointeur en bas du tas. |
HighStak | Cette variable permet d'indiquer le haut de la pile. |
LowStack | Cette variable permet d'indiquer le bas de la pile. La routine de vérification de pile vérifie le pointeur de pile par rapport à celle-ci. |
La variable LowStack est de 126 octets au-dessus de la limite basse réel. Il peut être incrémenté un peu si vous avez besoin d'une marge plus importante car l'une de vos procédures utilise beaucoup de variables locales.
Dernière mise à jour : Dimanche, le 19 avril 2020