★ CODING ★ HEBDOGICIEL ★ FORMATION A L'ASSEMBLEUR PRATIQUE LANGAGE MACHINE SUR AMSTRAD ★ |
La page pédagogique d'hebdogiciel 123: La Mémoire | Coding Hebdogiciel |
PLUS QUE LA MÉMOIRE Avec ce coure, nous allons terminer la partie purement théorique de cet apprentissage. Après avoir vu les numérotations binaires et hexadécimales, la structure du 280 et. aujourd'hui, la mémoire de l'Amstrad, vous serez fin prêt pour commencer à créer de petits programmes en assembleur qui vous laisseront cois d'admiration. Alors, encore un peut effort, suivez le guide et dites-vous bien que si vous ne comprenez pas tout ce n'est pas grave ! (Moi-même, au début...) LA MÉMOIRE D'ÉLÉPHANT Souvenez-vous d'une chose très importante : un microprocesseur 8 bits ne peut adresser que 64 Ko, soft 65536 cases mémoire numérotées de $0000 à $FFFF. Et, tant que j'y suis, je rappellerai pourquoi : une adresse mémoire, tient sur deux octets, soit 16 bits et, avec 16 bits, on peut compter de &X0 à &X1111111111111111, soft de 0 à 65535. Mais alors, comment l'Amstrad peut-il avoir 64 Ko de RAM plus 32 Ko de ROM, sans parler du 6128 qui, lui, a carrément 128 Ko de AM ? En créant tout simplement plusieurs banquet de mémoire :
Nous allons nous intéresser principalement à celle-ci. Toute la RAM des ordinateurs 464 et 664 est contenue dans cette banque. Chaque banque est divisée en 4 blocs de 16 Ko chacun. Voyons-les un par un : BLOC 1 : de $0000 à 3FFF. Ce bloc est en parallèle avec la ROM du système d'exploitation (banque numéro 2), ce qui vaut dire que le basic ne peut à la lois faire appel à une routine de la ROM et accéder à la RAM : il doit choisir. Afin de simplifier ce travail, le contenu de la ROM allant de l'adresse $0000 à $003F est copié dans la RAM lors de l'initialisatIon de la machine. En clair, il ne faut pas toucher a ces adresses (sauf al vous voulez voir déconner un ordinateur à fond la caisse : faites alors POKE &38,0 , par exemple et amusez-vous bien ! ). partir de l'adresse $0170 commence l'implantation de votre programme basic, Jusqu'à HIMEM. BLOC 2 : de $4000 à $7FFF. Ce bloc fait partie de la RAM centrale, ce qui veut dire qu'il n'a pas de ROM en parallèle avec lui. Votre programme basic continue son implantation dans ce bloc. Autre caractéristique Importante : Il peut servir aussi de mémoire écran. BLOC 3 : de $8000 à $BFFF. Suite et fin de votre programme basic, jusqu'à HIMEM (variable basic qui indique l'adresse du dernier octet de l'espace disponible pour le basic). Pour la connaître, tapez PRINT HEX$(HIMEM). Au-dessus de HIMEM se trouvent d'abord les caractères redéfinis par l'utilisateur. ensuite les variables système, puis les adresses de branchement en ROM du bas et, pour terminer, la pile, Attendez un peu, je vais détailler. Les caractères redéfinis par l'utilisateur, vous savez ce que c'est : SYMBOL AFTER. SYMBOL; vous connaissez. Les variables système sont exactement ce que leur nom indique : des variables système d'exploitation. Elles servent à mémoriser le mode écran, les couleurs, le ligne basic en cours d'exécution et bien d'autres choses encore... Les adresses de branchement , encore appelées bloc de saut, ont des adresses qui permettent d'appeler des routines du système d'exploitation, en étant certain de tomber en ROM et non pat en RAM. Exemple : la routine qui teste si une touche a été frappée, dans le 464, se trouve â l'adresse $1A3C, mais si vous faites CALL &1A3C vous appelez la RAM. En revanche, si vous faites CALL &BB06, voua appelez la ROM. Pourquoi ? Parce qu a cette adresse une petite routine s'occupe de brancher votre appel sur la ROM. C'est ainsi que les principales routines du système d'exploitation sont appelées par une adresse de branchement. Enfin, tout en haut de ce bloc se trouve l'emplacement réservé à la pile. La pile est une zone qui permet de stocker provisoirement des adresses et des valeurs. Nous aurons l'occasion d'en reparler de manière beaucoup plus approfondie. BLOC 4 : de $C000 à $FFFF. Ce bloc est la mémoire écran, qu'il faudra très bien connaître. C'est pour cette raison que nous allons l'étudier en détail : 50 fois par seconde le contenu de ce bloc est affiché sur votre moniteur. Si vous modifiez une adresse de ce bloc, vous verrez immédiatement un changement sur votre écran. Tapez : 10 MODE 1 |
|
Page précédente : La page pédagogique d'hebdogiciel 120: Le Pointeur SP |
|
Page créée en 257 millisecondes et consultée 3356 fois L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko. |