★ CODING ★ HEBDOGICIEL ★ FORMATION A L'ASSEMBLEUR PRATIQUE LANGAGE MACHINE SUR AMSTRAD ★ |
La page pédagogique d'Hebdogiciel n°111: Basic et Langage Machine | Coding Hebdogiciel |
O vous, possesseurs d'Amstrad, ce jour tant attendu est enfin arrivé ! Vous pour qui le basic n'a plus de secret, vous qui en avez ras le bol de voir, dans les jeux de café, des vaisseaux se déplacer à des vitesses supersoniques alors que votre pauvre sprite basic vous laisse le loisir de boire trois cafés en attendant sa traversée de l'écran, vous qui, sachant parfaitement piloter votre machine en première, aimeriez terriblement savoir comment passer la seconde. O vous qui mijotez dans votre petite tête un jeu d'aventure avec trois mille pièces, cinq mille personnages, le double de situations, sans compter les vues en trois dimensions (3D pour les intimes) des chutes du Niagara, votre héros les remontant à la pagaie, vous qui demandez comment caser tout cela dans 42000 petits octets, ce jour sacré est venu... Il est là ! Aujourd'hui, vous entrez dans une nouvelle ère, bientôt le langage machine n'aura plus de secret pour vous. On dira de votre personne, dans les soirées chic : BASIC ET LANGAGE MACHINE Quand vous allez en Italie sans connaître l'italien, vous faites appel à un interprète pour communiquer avec les autochtones (les italiennes si vous préférez). En revanche, si vous maîtrisez la langue du pays, il vous sera possible d'approfondir vos relations avec ses habitants. L'Italie c'est votre Amstrad, les italiennes sont le microprocesseur et l'interprète, le Basic ! A vous de crier aujourd'hui : "L'interprète aux chiottes, vivent les italiennes !...". Le langage machine est donc au microprocesseur ce que l'italien est aux italiennes. L'interprète parle italien, de même le basic parle 'LANGAGE MACHINE'. Seulement attention ! S'il vous suffisait de taper l'ordre 'PRINT "bonjour"' pour voir apparaître le mot 'bonjour' à l'écran, en langage machine il vous faudra décomposer 'PRINT' en multiples ordres du genre : 'Prends le contenu de A, mets-le dans B et ce qu'il y a dans B, sauvegarde-le... etc'. Un programme en langage machine, bien que beaucoup plus rapide à l'exécution, sera donc plus long à mettre au point qu'un programme basic. LANGAGE MACHINE ET ASSEMBLEUR Et c'est ici que commencent les premiers exemples. Vous connaissez l'instruction basic 'RETURN' ? Elle existe aussi en langage machine : 11001001. (Et il dit que c'est facile !) soit en hexadécimal : &HC9 (ouh là là I) attention, voici maintenant en assembleur 'RET' (Ah ! ça va mieux !). BASIC LANGAGE MACHINE ASSEMBLEUR RETURN 11001001 ou &HC9 RET L'assembleur est un langage qui permet d'écrire un programme sous forme de mnémoniques (mot facile à retenir qui correspond à une instruction du microprocesseur) et qui les transforme en code machine. Il va de soi que RET est plus parlant que 11001001 ! VOTRE PREMIER PROGRAMME MACHINE Mais où donc est implanté un programe en langage machine ? Dans la mémoire bien sûr ! Oui, mais où ? c'est une bonne question, et je vous remercie de me l'avoir posée ! La réponse est : n'importe où en RAM. L'interprète Basic, par exemple, se trouve entre les adresses &HC000 et &HFFFF. L'instruction RET de l'exemple précédent prend une case mémoire (octet), le microprocesseur peut en adresser 65536. Nous verrons pourquoi plus tard, je vois que vous brûlez d'impatience d'essayer le programme annoncé, alors le voici ! Tapez : 10 RETURN Ce n'est pas un cours de Basic, me direz-vous ? D'accord ! Tapez donc : POKE &8000,&C9 Décevant ? Pas si je vous dis que vous venez de réaliser votre premier programme en langage machine (souvenez-vous un peu avec émotion du PRINT BONJOUR de vos débuts). ATTACHEZ VOS CEINTURES Ca y est ? Vous êtes fin prêt pour le décollage ? Si vous n'avez pas compris l'instruction RET, il est toujours temps de descendre. Sinon, attachez votre ceinture, l'hôtesse va vous parler du voyage. Nous allons survoler les numérotations binaire et hexadécimale qu'il sera indispensable de bien connaître. Puis, après une escale dans la capitale de l'Amstrad (le microprocesseur), nous effectuerons un vol de repérage de la mémoire, de l'adresse 0 à l'adresse 65535. Ensuite, chaque instruction sera étudiée en détail et toujours avec un programme d'exemple. A chaque étape, ayez votre machine à portée de la main, ainsi que l'un des trois logiciels suivants : — Z80 EASY-AMSCODE (Amsoft) : parfaitement adapté si vous ne voulez que vous initier au langage machine et faire quelques bidouilles. Il propose une exécution pas-à-pas très détaillée. Si vous avez les moyens, offrez-vous tous ces programmes ! Ils ont chacun leur application spécifique. RECREATION Ce petit paragraphe vous donnera, à la fin de chaque cours, l'adresse d'une routine intéressante, ou un mini-programme que vous pourrez essayer rapidement pour vous détendre. Il s'agit d'une routine existant déjà en ROM et que l'on appelle à l'adresse &HBB60. Il suffit donc d'appeler la routine pour avoir dans l'accumulateur le code ASCII du caractère se trouvant sous le curseur. Notre petit programme va simplement récupérer ce caractère par l'intermédiaire d'une case mémoire. Amusez-vous bien et à la prochaine ! 10 FOR L=&8000 T0 &8006 ; Implantation |
|
Page précédente : La page pédagogique d'hebdogiciel 107: Les Outils Logiciels |
|