CODINGHEBDOGICIEL ★ FORMATION A L'ASSEMBLEUR PRATIQUE LANGAGE MACHINE SUR AMSTRAD ★

La page pédagogique d'hebdogiciel 111: Basic et Langage MachineCoding 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 :
"- T'as vu le mec, là ? Il programme en langage machine...
-  Non?...
-  Si ! J'te jure !...
-  Ouah ! Le mec ! Y doit être vachement intelligent I..."
Intelligent, vous l'êtes certainement, mais si vous avez un doute, souvenez-vous du temps où vous disiez dans les soirées chic : "- T'as vu le mec, là ? Il programme en basic... etc"
Car j'ose le proclamer bien haut, le langage machine est PLUS FACILE QUE LE BASIC I La preuve ? Savez-vous compter jusqu'à deux ? Non ? Alors je ne peux rien pour vous ! Oui ? Ces nouveaux cours vous prouveront qu'avec un simple certificat d'études primaires, et la passion du clavier, n'importe qui PEUT programmer en langage machine. Ah mais !

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
GOSUB 10
Ce n'est pas un cours de Basic, me direz-vous ? D'accord ! Tapez donc :
POKE &8000,&C9
CALL &8000
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.

- DEVPAC ASSEMBLEUR (Amsoft) : si vous espérez écrire de longs et beaux programmes. Il s'agit d'un véritable assembleur et d'un débugger. Je me sers de celui-ci, et je m'en sors très bien.

- DAMS (Micro Application) : dans le même esprit que le précédent. Doté de fonctions Trace très puissantes, écrit par un français (cocorico !).

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.
Aujourd'hui, récréation n'intéressera que les propriétaires d'un 464, puisqu'il s'agit de créer un équivalent de l'instruction COPYCHR$ que connaissent les deux autres machines. Cette instruction lit un caractère affiché à l'écran, à la position du curseur.

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
20 READ A: POKE L,A                       ; en mémoire
30 NEXT                                   ; du langage machine
40 DATA &CD,&60,&BB,&32,&07,&80,&C9
50 CLS : PRINT "A"                        ; A en haut de l'écran
60 LOCATE 1,1
70 CALL &8000                             ; appel de la routine
80 LOCATE 10,10
90 PRINT CHR$(PEEK(&8007))                ; Récriture du caractère

Hebdogiciel n°111 , Patrick DUBLANCHET

★ LICENCE: COMMERCIALE
★ ANNÉES: 1985
★ AUTEUR: Patrick Dublanchet

Page précédente : La page pédagogique d'hebdogiciel 107: Les Outils Logiciels
★ AMSTRAD CPC ★ DOWNLOAD ★

Files:
» Amsoft  devpacDATE: 2013-09-03
DL: 575 fois
TYPE: ZIP
SIZE: 47Ko

» DAMS-CPMDATE: 2013-09-03
DL: 179 fois
TYPE: ZIP
SIZE: 18Ko

» damspackDATE: 2013-09-03
DL: 386 fois
TYPE: ZIP
SIZE: 47Ko

» DAMS  6128    FRENCHDATE: 2015-07-09
DL: 50 fois
TYPE: ZIP
SIZE: 39Ko

» DAMS  Converter  v1.1DATE: 2013-09-03
DL: 366 fois
TYPE: ZIP
SIZE: 25Ko

» Dams  notice  FRDATE: 2002-11-15
DL: 361 fois
TYPE: ZIP
SIZE: 18Ko

» DAMS  Overdrive  v1.0DATE: 2013-09-03
DL: 365 fois
TYPE: ZIP
SIZE: 39Ko

» DAMS  OVL    ROMDATE: 2002-12-02
DL: 449 fois
TYPE: ZIP
SIZE: 21Ko

» DAMS  v1.2    (Incl.  Manual)    FRENCHDATE: 2015-05-07
DL: 138 fois
TYPE: ZIP
SIZE: 49Ko

» DAMS    (Keypad  patched  version)DATE: 2013-09-03
DL: 272 fois
TYPE: ZIP
SIZE: 37Ko

» Hisoft  Devpac80  v.2    ENGLISHDATE: 2013-09-03
DL: 470 fois
TYPE: ZIP
SIZE: 447Ko

» Hisoft  Devpac  ROMDATE: 2012-09-19
DL: 423 fois
TYPE: ZIP
SIZE: 12Ko

» Hisoft  Devpac    ENGLISHDATE: 2013-09-03
DL: 436 fois
TYPE: ZIP
SIZE: 85Ko

» RSX-Fast  Arrow    (Include  DEVPAC  SRC)    FRENCHDATE: 2015-07-28
DL: 58 fois
TYPE: ZIP
SIZE: 39Ko

» Zenith  2  DecompacterDATE: 2013-09-03
DL: 355 fois
TYPE: ZIP
SIZE: 26Ko

» ZENSUREN    GERMANDATE: 2013-09-03
DL: 323 fois
TYPE: ZIP
SIZE: 24Ko

» Zen    FRENCHDATE: 2013-09-03
DL: 366 fois
TYPE: ZIP
SIZE: 39Ko

Adverts/Publicités:
» Hisoft-Devpac80DATE: 2014-05-05
DL: 177 fois
TYPE: image
SIZE: 116Ko

» Hisoft-Devpac    ENGLISHDATE: 2015-01-08
DL: 158 fois
TYPE: image
SIZE: 238Ko

» Hisoft-Happy  New  Year  from  Hisoft-Pascal80-C  Plus  Plus-Devpac80-The  Knife-Catalog-Your  Health-Your  Horoscope    ENGLISHDATE: 2014-12-26
DL: 82 fois
TYPE: image
SIZE: 307Ko

» Hisoft-Pascal  4T-Devpac  3DATE: 2015-01-08
DL: 184 fois
TYPE: image
SIZE: 189Ko

» Zenith  Software-Z-PackDATE: 2015-01-08
DL: 118 fois
TYPE: image
SIZE: 61Ko

Covers:
» Amsoft-HiSoft-Devpac    ENGLISHDATE: 2015-01-08
DL: 157 fois
TYPE: image
SIZE: 274Ko

» Hisoft  Devpac    (Release  TAPE)    SPANISHDATE: 2014-05-05
DL: 188 fois
TYPE: image
SIZE: 418Ko
 

Medias/Supports:
» Devpac    (Release  DISC-AMSOFT)    ENGLISHDATE: 2016-06-21
DL: 24 fois
TYPE: image
SIZE: 14Ko
NOTE: Uploaded by hERMOL ; w310*h374

» Devpac    (Release  TAPE-INDESCOMP)    SPANISHDATE: 2017-03-31
DL: 2 fois
TYPE: image
SIZE: 113Ko
NOTE: Uploaded by hERMOL ; w839*h581
 
» Hisoft  Devpac    (Release  AMSOFT-TAPE)    ENGLISHDATE: 2015-11-11
DL: 24 fois
TYPE: image
SIZE: 100Ko
NOTE: Scan by Loic DANEELS ; w594*h739

» ZEN  Assembler    (Release  TAPE)    ENGLISHDATE: 2015-11-11
DL: 39 fois
TYPE: image
SIZE: 95Ko
NOTE: Scan by Loic DANEELS ; w594*h737

Manuels d'utilisation:
» DAMS    (Manuel  d  utilisation-OCR  by  DRILL)    FRENCHDATE: 2014-05-05
DL: 319 fois
TYPE: PDF
SIZE: 330Ko

» HiSoft-Devpac    (Licence  Statement)    ENGLISHDATE: 2014-05-05
DL: 184 fois
TYPE: image
SIZE: 295Ko

» HiSoft  Devpac  Programmers  Manual    ENGLISHDATE: 2014-05-05
DL: 467 fois
TYPE: PDF
SIZE: 2083Ko

Je participe au site:
» Newfile(s) upload/Envoye de fichier(s)
★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding » La page pédagogique d'hebdogiciel 120: Le Pointeur SP
» Coding » La page pédagogique d'hebdogiciel 130
» Coding » La page pédagogique d'hebdogiciel 088 : Formation à l'assembleur
» Coding » La page pédagogique d'hebdogiciel 107: Les Outils Logiciels
» Coding » La page pédagogique d'hebdogiciel 084: Formation à l'assembleur - La Pile
» Coding » La page pédagogique d'hebdogiciel 123: La Mémoire

QUE DIT LA LOI FRANÇAISE:

L'alinéa 8 de l'article L122-5 du Code de la propriété intellectuelle explique que « Lorsque l'œuvre a été divulguée, l'auteur ne peut interdire la reproduction d'une œuvre et sa représentation effectuées à des fins de conservation ou destinées à préserver les conditions de sa consultation à des fins de recherche ou détudes privées par des particuliers, dans les locaux de l'établissement et sur des terminaux dédiés par des bibliothèques accessibles au public, par des musées ou par des services d'archives, sous réserve que ceux-ci ne recherchent aucun avantage économique ou commercial ». Pas de problème donc pour nous!

CPCrulez[Content Management System] v8.75-desktop/c
Page créée en 042 millisecondes et consultée 906 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.