Les programmes Mémoire 1 à 5 ainsi que le programme de références des variables nous ont déjà permis de pénétrer un peu dans les "secrets internes" du CPC. Par secrets internes nous voulons dire: comment celà se passe-t-il quand un être inhumain tel que l'ordinateur arrive à penser. N'oubliez jamais à cet égard qu'un ordinateur ne peut jamais être plus intelligent qu'il n'a été programmé.Les programmes Mémoire 1 à 5 ne nous ont cependant pas permis de rentrer suffisamment à l'intérieur de notre CPC. Nous n'avons en effet pu qu'examiner comment nos programmes BASIC sont stockés ligne par ligne, instruction par instruction dans la mémoire de l'ordinateur. Mais nous n'avons pas réussi à savoir comment l'ordinateur traite ces instructions. Nous avons notamment indiqué à cette occasion que le CPC, comme tout autre ordinateur ramène tout à l'alternative la plus simple, éteint ou allumé, oui ou non, 0 ou 1. C'est en effet seulement à partir d'une suite de 0 et de 1 que l'ordinateur arrive à reconnaître un caractère ou une Instruction. Notre BASIC est un langage de programmation évolué: il est en effet structuré en un nombre important de mots intelligibles (surtout quand on comprend l'anglais). Ces instructions nous permettent d'avoir beaucoup plus facilement une idée de ce que peut faire l'ordinateur que si nous ne pouvions entrer que des 0 et des 1 dans notre ordinateur. Le code assembleur auquel s'attaque ce programme constitue une étape intermédiaire entre le EASIC et le langage binaire de la machine. Nous disposons ici d'u nombre encore plus grand d'instructions (le processeur Z80A du CPC possède plus de 600 instructions) mais ces instructions sont très loin d'être aussi puissantes que les instructions BASIC. Ces instructions occupent 1, 2 ou 3 octets en mémoire. Le programme 'Désassembleur' connait tous les codes assembleur du Z80A (ces codes sont aussi appelés mnémoniques) et il recherche dans la zone que nous voulons quels codes il rencontre. Il recherche pour cela s'il rencontre des suites de valeurs déterminées (de même que notre programme Mémoire recherchait le mot 'Examen'). S'il rencontre ces suites de nombres, il écrit le code assembleur correspondant sur l'écran. Comme nous ne pensons pas que vous allez vous mettre à écrire du jour au lendemain un grand nombre de programmes en langage-machine, nous avons intégré une fonction pédagogique dans notre 'Désassembleur': la ligne 3530 contient en effet une instruction DATA suivie de nombres hexadécimaux qui constituent un petit programme en langage-machine. Ce programme calcule le résultat de deux nombres et le place dans un adresse déterminée. Vous pouvez regarder comment ces nombres se transforment en un programme assembleur en répondant, une fois le programme lancé, à toutes les questions en appuyant simplement sur la touche ENTER. Vous pouvez aussi écrire d'autres nombres (uniquement en format hexadécimal!) dans cette ligne DATA, par exemple si vous trouvez dans une revue d'informatique un long programme en langage-machine pour le processeur Z80A. Vous pouvez d'ailleurs écrire plusieurs lignes de DATA si nécessaire. Amusez-vous bien! Programmes Basic Pour CPC 464 (Micro Application Tome 2)
|