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