Home
Etude d`un exemple - Ceci est une page de test
Contents
1. 5 L adressage direct Il concerne tout comme l adressage tendu le contenu d un octet de la m moire mais il ne peut tre utilis que s il s agit d un octet dont l adresse est inf rieure 256 Un exemple LDAA lt 80 Apr s ex cution de cette instruction il y aura dans le registre A le m me nombre que celui qui est crit l adresse 80 128 d cimal PRINT PEEK 128 r ponse 34 C est donc la valeur 34 qui a t plac e dans A Il n y a rien d autre ajouter sur ce mode d adressage que d ail leurs l on n emploie qu pisodiquement Remarquons tout de m me que l adresse de l octet est donn e en hexad cimal et qu elle est pr c d e du signe lt Nous en avons termin avec ce chapitre le cap difficile de la th o rie est pass Asseyons nous devant Alice et voyons comment nous allons lui faire comprendre puis ex cuter un programme crit en assembleur 56 4 TUDE D UN EXEMPLE Retrouvons le programme BASIC qui nous a servi dans le Chapitre 2 mettre en vidence les qualit s graphiques de notre ordinateur 10 POKE 48929 65 REM LETTRE A 20 POKE 48930 1 REM MODE ALPHA 30 POKE 48931 23 REM ROUGE BLANC 40 POKE 48934 27 REM LIGNE N 20 50 POKE 48935 27 REM COL N 27 60 POKE 48936 1 REM EXECUTION Inutile de le retaper il n es
2. 28 STAA BF28 14 4A1C 20 F2 FIN BRA FIN 0 ERREUR S PASSE 1 0 ERREUR S PASSE 2 _ 62 SYMBOLES DEBUT 4A00 FIN 4A1C FICHIER OBJET A la derni re ligne l ordinateur demande si l on d sire sauvegar der le programme objet sur une cassette Appuyez sur BREAK Appa ra t alors le message qui nous int resse EXECUTION IMMEDIATE R pondez en enfon ant la touche 0 puis ENTER Le programme est enfin ex cut et cela se traduit par le dessin de la lettre majuscule A en rouge sur blanc en bas et droite de l cran Voil nous sommes arriv s nos fins le premier pas est franchi En fin de compte programmer en assembleur n est pas plus compli qu qu en BASIC C est simplement un peu plus long car le micro processeur ne comprend que des actions l mentaires il faut lui m cher le travail N oubliez pas que le programme boucle ind finiment dans la ligne 14 La touche BREAK ne vous sera d aucune utilit pour reprendre Alice en main Il n y a qu un seul moyen pour sortir d un programme assembleur qui boucle enfoncer la touche INIT plac e sur la face arri re de la machine Laissez la fin de ce chapitre de c t Dans un premier temps tout au moins ce qui suit peut tr s bien tre ignor Inutile donc de vous encombrer l esprit avec des notions qui en d finitive ne nous con cernent pas directement Vous reprendrez le livre cette page quand vos connaissances se
3. seront un peu stabilis es LE LANGAGE MACHINE Un ordinateur ne comprend que des nombres et pour lui les expres sions LDAA STAA ou BRA ne veulent absolument rien dire Il va donc falloir lui traduire le programme que nous avons crit en assem bleur sous la seule forme qui lui soit compr hensible les codes machine Insistons bien sur la diff rence qu il y a entre les langages assem bleurs et machine le premier est con u pour l esprit humain et il est 63 form d instructions qui ont un sens pour nous Quand on crit LDAA on sait tr s bien ce qui se passera dans le processeur on n a pas besoin de faire un gros effort pour comprendre que le contenu du registre A sera modifi et remplac par une nouvelle valeur La forme assem bleur permet d crire des programmes qui soient lisibles des program mes qui soient constitu s de mots ou d abr viations dont on s habi tuera tr s vite conna tre le sens Quant au langage machine il est constitu d une s rie de nombres que l ordinateur lui est capable d interpr ter Il y a naturellement une correspondance absolue entre les instructions assembleur et les codes machine qui leur sont relatifs Livrons nous pour la premi re et pour la derni re fois la tra duction en langage machine du programme que nous avons crit en assembleur C est Alice elle m me qui se charge normalement de ce travail Servez vous du
4. I de la lettre A dans l octet 48929 Avant de poursuivre notre tude tirons la le on de ce que l on vient de faire pour crire une valeur dans un octet on place cette valeur dans le registre A LDAA en mode imm diat puis on la range en m moire STAA en mode tendu LDAA 1 ligne 5 STAA S BF22 ligne 6 60 Nous pouvons aller plus vite maintenant que le principe est compris On crit dans l accumulateur le nombre 1 et on le transf re dans l octet BF22 48930 d cimal On vient par l m me de porter son choix sur le type d affichage alphanum rique standard LDAA 17 ligne 7 STAA S BF23 ligne 8 Puisque 17 vaut 23 en d cimal ces deux lignes ont pour but d crire la valeur 23 dans l octet BF23 48931 d cimal La lettre majuscule A appara tra donc en rouge sur fond blanc LDAA 19 ligne 9 STAA BF26 ligne 10 Nous continuons respecter l encha nement des lignes BASIC voici les deux instructions qui correspondent POKE 48934 27 Le carac t re sera visible sur la ligne num ro 20 car mais vous ne l avez pas oubli les lignes 1 2 7 sont saut es par l ordinateur STAA BF27 ligne 11 Aucun ordre LDAA n ayant t programm la valeur contenue par A est rest e la m me Cette ligne fournit l ordinateur la derni re chose qui lui manquait le num ro de la colonne sur laquelle se verra la lettre A LDAA 1 ligne 12 STAA BF28 li
5. bres 86 41 B7 BF 21 etc L ensemble de ces valeurs est appel le code machine et il est direc tement ex cutable Il suffit pour le faire ex cuter de brancher le pro cesseur sur la premi re de ces valeurs C est exactement ce qui est r a lis quand nous r pondons OUI la question EXECUTION IMMEDIATE Il reste pour clore ce chapitre indiquer comment l ordinateur fait pour savoir quel endroit de sa m moire se trouve le premier des codes machine Il utilise pour cela la premi re indication du programme ORG 4A00 Cette directive lui donne l adresse partir de laquelle sera rang le code machine Puisque 4A00 est gal 18944 en notation d cimale on en d duit que les nombres 86 41 B7 etc seront crits dans les octets 18944 18945 18946 etc Vous pourrez v rifier ceci en tudiant les nombres qui sur le listing d assemblage suivent les num ros de ligne 3 4A 00 86 41 4 4A 02 B7 BF 21 86 est crit dans l octet 4A00 B7 est crit dans l octet 4A02 etc 65
6. gne 13 Il ne reste plus qu rendre effectif l affichage ceci se fait en cri vant le nombre 1 dans l octet BF28 48936 d cimal FIN BRA FIN ligne 14 Nous utilisons tous dans nos programmes BASIC des lignes du genre 100 GOTO 100 _ 61 Nous avons sous les yeux la forme quivalente en assembleur BRA est une instruction de branchement inconditionnel et comme ce bran chement s effectue la ligne courante le programme boucle sans fin Bien entendu l int r t de cet tat de choses sera de nous laisser le temps de voir ce qui va appara tre sur le t l viseur la lettre A colori e en rouge sur fond blanc EX CUTION DU PROGRAMME Le programme est enti rement tap il ne reste plus qu comman der l ordinateur de l ex cuter Pressez la fois les touches CTRL et 1 Le message suivant appa ra t en bas de l cran LISTING ECRAN IMP ENTER Appuyez sur E puis sur la touche ENTER Vous devez voir appa ra tre la totalit de votre programme avec en plus divers renseigne ments Nous avons devant nous ce que l on appelle le listing d assemblage 1 ORG 4A00 2 EXC DEBUT 3 4A 00 86 41 DEBUT LDAA 41 4 4A02 B7 BF 21 STAA BF21 5 4A05 86 01 LDAA 1 6 4A07 B7 BF 22 STAA BF22 7 4A0A 8617 LDAA 17 8 4AOC B7BF 23 STAA BF23 9 4AOF 8619 LDAA 519 10 4A11 B7 BF 26 STAA BF26 11 4A 14 B7 BF 27 STAA BF27 12 4A17 86 01 LDAA 1 13 4A 19 B7 BF
7. ons ligne DEBUT Et du coup EXC ligne 3 devient EXC DEBUT Naturel lement nous aurions pu remplacer le mot DEBUT par ABCDE ou n importe quel assemblage de cinq lettres maximum Il aurait fallu alors faire d buter la ligne 3 par ABCDE DEBUT LDAA 41 ligne 3 A partir de l nous intervenons sur le microprocesseur lui m me LDAA est une instruction que nous avons d j rencontr e Elle signi fie que le registre A va contenir la valeur hexad cimale 41 65 d ci mal Le symbole est l pour indiquer le mode d adressage imm diat On ignore quel nombre se trouvait dans l accumulateur avant cette instruction mais maintenant on est s r de la valeur de A c est 65 en d cimal 41 STAA BF21 ligne 4 STAA est une instruction tr s fr quemment utilis e en assembleur elle signifie que la valeur contenue dans A va devoir tre inscrite dans un octet de la m moire STAA est l abr viation de STORE A qui en anglais veut dire RANGER A Le mode d adressage choisi l tendu nous laisse entendre que BF21 48929 d cimal est l adresse d un octet de la m moire En d finitive c est dans cet octet que sera rang le contenu de A Cette instruction est donc l quivalent assembleur de la ligne BASIC 10 POKE 48929 65 car ne le perdons pas de vue le registre contient le nombre 65 Voil reconstitu e sous sa forme assembleur la ligne BASIC 10 Il y a donc pour l instant le code ASCI
8. ots DEBUT et FIN que l on appelle des ti quettes partir du bord gauche de l cran e Enfin n oubliez jamais de laisser au moins deux espaces libres avant d crire une instruction et d en laisser au moins un entre les diff rents constituants d une ligne ANALYSE DU PROGRAMME ORG 4A00 ligne 1 On s est bien compris n est ce pas Vous avez laiss au moins deux espaces avant de taper les lettres O R et G et vous avez ensuite laiss au moins un espace avant d afficher 4A00 Et vous n avez mentionn aucun num ro de ligne Bien alors voici quoi correspond cette ligne La directive ORG appara t toujours la premi re ligne des pro grammes Elle donne l ordinateur des indications sur la fa on dont il devra ranger dans sa m moire les codes machine Ne cherchons pas pour l instant y comprendre quoi que ce soit D une part parce que nous aurons l occasion d y revenir et d autre part parce que cela n a pas de rapport direct avec ce que nous sommes en train d analyser EXC DEBUT ligne 2 59 Le programme proprement parler n a pas encore commenc EXC est une directive qui va pr ciser la machine quelle ligne se trouve la premi re instruction r elle du programme En l occurrence c est de la ligne 3 qu il est question ligne laquelle nous avons coll une tiquette Au lieu de l appeler ligne 3 nous l appel
9. t pr sent ici que pour nous remettre en t te la marche suivre quand on veut afficher un caract re sur l cran Cette marche suivre nous allons le voir est rigoureusement la m me en BASIC et en assembleur LE MODE DITEUR ASSEMBLEUR Respectons les consignes du manuel d utilisation CLEAR 100 18000 puis ENTER amp puis ENTER D s que ces deux ordres ont t tap s l cran s efface et le fond devient bleu Nous sommes maintenant sous le contr le de l diteur assembleur Le microprocesseur 6803 attend nos ordres Allons y sans crainte 1 ORG 4A00 18944 DECIMAL 2 EXC DEBUT 3 DEBUT LDAA 41 CODE ASCII A 4 STAA BF21 48929 DECIMAL 5 LDAA 1 6 STAA BF22 48930 DECIMAL 7 LDAA 17 23 DECIMAL 8 STAA BF23 48931 DECIMAL 9 LDAA 19 27 DECIMAL 10 STAA BF26 48934 DECIMAL 58 11 STAA BF27 48935 DECIMAL 12 LDAA 1 13 STAA BF28 48936 EXECUTION 14 FIN BRA FIN Voici quelques indications sur les pr cautions prendre pour entrer ce programme e N indiquez surtout pas comme en BASIC les num ros des lignes que vous voyez ici crits gauche Nous ne les avons fait appara tre que parce que cela vous permettra de vous y retrouver plus facile ment dans les explications e Sachez que tout ce qui suit un point virgule est ignor par l ordina teur le point virgule est en assembleur l quivalent de l instruc tion BASIC REM e Vous devez crire les m
10. tableau de l Annexe C 3 4A00 8641 DEBUT LDAA 41 4 4A02 B7 BF 21 STAA BF21 86 est l quivalent pour la machine de LDAA Vous constatez que LDAA se code de diff rentes fa ons suivant le mode d adressage Celui qui nous int resse est l imm diat dans la premi re colonne donc Il faudra toujours se souvenir que les codes machine sont crits en hexa d cimal 86 ainsi que tous les autres codes de ce tableau respecte cette r gle 41 est le nombre qui suit 86 Le microprocesseur apr s avoir inter pr t 86 s attendra ce qu on lui dise avec quel nombre il doit char ger A Puisque 41 vient la suite de 86 il comprendra que la valeur 41 65 d cimal doit tre plac e dans l accumulateur B7 est le code machine de l instruction STAA Il doit tre choisi dans la bonne colonne celle de l adressage tendu C est en effet ce mode que nous avons d cid d utiliser en crivant le programme assem bleur Quand Pordinateur va lire ce code il saura qu il lui faut alons s int resser aux deux valeurs suivantes BF et 21 forment le nombre hexad cimal BF21 La machine ayant rencontr B7 comprendra qu elle doit placer le contenu du registre A dans un octet de la m moire dans le num ro 48929 BF21 bien s r _ 64 Arr tons nos efforts de traduction cela devient vite fastidieux Rete nons que notre programme assembleur correspond pour le proces seur la suite de nom
Download Pdf Manuals
Related Search
Related Contents
Manual del usuario Ricoh Aficio SP C320DN LogBox-AA 6CMH`03(6M82) 6DMH`03(6M92) 8CMH`03(6N02) NSX-R70 SwimPro IQ Recorder - Swimming Technique Camera MANUAL TÉCNICO Y DE INSTALACIÓN Zartek Mobile Pro5l Pro8 User`s manual GAINSKEEPER USER MANUAL PowerOn HT-18A Copyright © All rights reserved.
Failed to retrieve file