Micro Systèmes n°22 mar/avr 1982
Micro Systèmes n°22 mar/avr 1982
  • Prix facial : 18 F

  • Parution : n°22 de mar/avr 1982

  • Périodicité : mensuel

  • Editeur : Société Parisienne d'Edition

  • Format : (213 x 271) mm

  • Nombre de pages : 230

  • Taille du fichier PDF : 176 Mo

  • Dans ce numéro : David Em, artiste sur ordinateur... un voyage dans le monde de l'imaginaire.

  • Prix de vente (PDF) : gratuit

Dans ce numéro...
< Pages précédentes
Pages : 62 - 63  |  Aller à la page   OK
Pages suivantes >
62 63
Un « désassembleur » traduit une suite de codes machine en un programme en langage d'assemblage. Etude Il apparaît clairement que nous aurons besoin d'un certain nombre de renseignements que nous pouvons noter  : il nous faudra la « carte » de l'espace adressable de la mémoire, et bien sûr une liste complète des instructions du microprocesseur, avec des indications précises sur les codes en lan- gage machine, les mnémoniques correspondants, le nombre d'octets du code opération et de l'opérande, renseignements dont nous nous servirons pour établir une table des instructions. Cependant, pour rester fidèles à la méthode que nous avons choisie, remettons à plus tard la réali- sation de cette table, et occuponsnous plutôt de construire une première ébauche du désassembleur. L'organigramme de la figure 2 présente les actions suivantes  : (1) choix de l'adresse initiale. (2) lecture en mémoire du code opération. Encadré I Les modes d'adressage du 6502 Le 6502 dispose d'un vaste assortiment de modes d'adressage. Nous donnons, ici, le détail de chacun de ces modes. ■ adressage implicite  : L'adresse de l'opérande est contenue de façon « implicite » dans le code opération (instruction à un seul octet). Exemple  : CLC (Clear Carry flag) mise à zéro du bit de retenue dans le registre d'état. ■ adressage immédiat  : L'opérande est contenu dans le second octet de l'instruction. Exemple  : LDA # E6 (LOAD A) charger l'accumulateur A avec la quantité E6. ■ adressage absolu (ou direct)  : Le second octet de l'instruction exprime les huit bits de poids faible de l'adresse tandis que le troisième octet donne les huit bits de poids fort *. Ce mode d'adressage couvre donc tout l'espace mémoire (64 K-octets). ■ adressage en page 0  : La « page 0 » représente les 256 premiers octets de l'espace mémoire. Ce mode d'adressage utilise le second octet de l'instruction pour définir l'adresse effective. ■ adressage de l'accumulateur A  : Ce mode d'adressage se rapporte au registre A ; il est, en fait, analogue à l'adressage implicite. ■ adressage absolu indexé  : L'adresse effective est obtenue en ajoutant au second octet d'une instruction en comportant trois, le contenu du registre X (ou éventuellement du registre Y). ■ adressage indexé en page 0  : L'adresse effective est obtenue en ajoutant au second octet d'une instruction en comportant deux, le contenu du registre X (ou éventuellement du registre Y). La retenue n'est pas prise en compte. ■ adressage indirect pré-indexé  : Le second octet de l'instruction est ajouté au contenu du registreX. Le résultat (sans tenir compte de la retenue) fournit une adresse en page O. Cette adresse et la suivante, contiennent respectivement les huit bits de poids faible et les huit bits de poids fort de l'adresse effective. ■ adressage indirect post-indexé  : Le second octet de l'instruction pointe une adresse en page O. Au contenu de cette adresse est ajouté celui du registre Y. Le résultat donne les huit bits de poids faible de l'adresse effective. La retenue éventuelle est ajoutée au contenu de l'adresse suivante en page 0 et délivre les huit bits de poids fort de l'adresse effective. ■ adressage indirect absolu  : Le second et le troisième octet de l'instruction contiennent respectivement les huit bits de poids faible et les huit bits de poids fort d'une adresse dont le contenu ainsi que celui de l'adresse suivante représentent respectivement les huit bits de poids faible et les huit bits de poids fort de l'adresse effective à charger dans le compteur ordinal. ■ adressage relatif  : Ce mode d'adressage est utilisé avec les instructions de branchement. Le second octet de l'instruction est ajouté aux huit bits de poids faible du compteur ordinal de façon à réaliser un déplacement compris entre — 128 et + 127 octets depuis l'adresse de l'instruction suivante. ■ * Même ordre pour les microprocesseurs 8080 et Z-80, mais attention, c'est l'inverse pour le 6800. 62 — MICRO-SYSTEMES Mars-Avril 1982
Etude d'un désassembleur Etude DEBUT DEBUT ADRESSE INITIALE ADRESSE INITIALE ADRESSE FINALE'r,, RF MEMOIRE F I ADRESSE I ADRESSE COURANTE 4— ADRESSE INITIALE I CTuRE CONTENU r:/RF SSE COURANTE I q- CHE RCHE INSTRuCDON DANS TARI ! RECHERCHE INSTRUCTION DANS TABLE I NON E ECTURE OPERANDE I IMPRESSION ADRESSE ET CODE OPERATION IMPRESSION CODE REINEA101En,,E I 4=M11111] Ill IMPRESSIO ; OPERANDI EN TENANT COMPEE DU NOMBRE D oD,'Fig. 2 INCREMENTATION ADRESSE COURE., Fig. 2. — Le programme de désassemblage une première » ébauche » d'organigramme. ADRESSE,, ouLANT  : N NON 4 ADRESSE FINALE OUI Fig. 3. — Un organigramme un peu plus » élaboré ». Fig. 3 (3) recherche de l'instruction dans la table des instructions. (4) impression du mnémonique. (5) impression de l'opérande. (6) passage à l'adresse de l'instruction suivante. (7) retour à l'action (2). Bien sûr, cet organigramme n'est pas suffisant pour résoudre le problème et nous allons devoir le compléter. En premier lieu, remarquons qu'en plus de l'adresse initiale, il faut indiquer une adresse finale et prévoir un test à chaque incrémentation d'adresse, sinon la boucle de lecture mémoire ne se terminera pas... D'autre part, les microprocesseurs 8 bits ont des instructions dont l'opérande peut occuper 0, 1 ou 2 octets mémoire. Il faudra donc en tenir compte pour imprimer correctement les opérandes. Pour chacune des instructions, nous devrons afficher sur l'écran ou imprimer  : l'adresse du code opération, le code opération, le terme mnémonique correspondant et l'opérande, avant de passer à l'instruction suivante. Si nous trouvons un code opération dont la table ne fournit pas d'instruction *, nous décidons d'imprimer simplement l'adresse, de continuer à lire la mémoire et d'émettre un message d'erreur. Ainsi, nous aboutissons à l'organigramme de la figure 3, plus « étoffé » que le précédent, et que nous allons encore améliorer. En effet, compte-tenu du fait que certaines données peuvent être exprimées en décimal ou en hexadécimal, il faut prévoir un module de conversion hexadécimal/décimal (et aussi l'inverse), que nous utiliserons au fur et à mesure de nos besoins. D'autre part, il pourra être intéressant de disposer du contenu des adresses en code ASCII. Puisque nous rédigerons notre désassembleur en BASIC, nous utiliserons à cette fin l'instruction CHR$ (X) qui délivre le caractère ASCII correspondant au nombre décimalX. Nous aboutissons ainsi à l'organigramme de la figure 4. Bien entendu, il est possible de continuer à le développer. Toutefois dans un souci de clarté, notre but ici étant principalement pédagogique, nous allons établir notre programme BASIC directement à partir de cette dernière version de l'organigramme. Quelques points complémentaires... Le problème ayant été « débroussaillé », et forts de l'outil que nous avons constitué avec l'organigramme de la figure 4, il nous faut rassembler maintenant des renseignements sur le microprocesseur utilisé (ici le 6502). Ces * Ceci est possible, car parmi les 256 codes théoriques d'un microprocesseur 8 bits, tous ne sont pas obligatoirement affectés. Mars-Avril 1982 MICRO-SYSTEMES — 63



Autres parutions de ce magazine  voir tous les numéros


Liens vers cette page
Couverture seule :


Couverture avec texte parution au-dessus :


Couverture avec texte parution en dessous :


Micro Systèmes numéro 22 mar/avr 1982 Page 1Micro Systèmes numéro 22 mar/avr 1982 Page 2-3Micro Systèmes numéro 22 mar/avr 1982 Page 4-5Micro Systèmes numéro 22 mar/avr 1982 Page 6-7Micro Systèmes numéro 22 mar/avr 1982 Page 8-9Micro Systèmes numéro 22 mar/avr 1982 Page 10-11Micro Systèmes numéro 22 mar/avr 1982 Page 12-13Micro Systèmes numéro 22 mar/avr 1982 Page 14-15Micro Systèmes numéro 22 mar/avr 1982 Page 16-17Micro Systèmes numéro 22 mar/avr 1982 Page 18-19Micro Systèmes numéro 22 mar/avr 1982 Page 20-21Micro Systèmes numéro 22 mar/avr 1982 Page 22-23Micro Systèmes numéro 22 mar/avr 1982 Page 24-25Micro Systèmes numéro 22 mar/avr 1982 Page 26-27Micro Systèmes numéro 22 mar/avr 1982 Page 28-29Micro Systèmes numéro 22 mar/avr 1982 Page 30-31Micro Systèmes numéro 22 mar/avr 1982 Page 32-33Micro Systèmes numéro 22 mar/avr 1982 Page 34-35Micro Systèmes numéro 22 mar/avr 1982 Page 36-37Micro Systèmes numéro 22 mar/avr 1982 Page 38-39Micro Systèmes numéro 22 mar/avr 1982 Page 40-41Micro Systèmes numéro 22 mar/avr 1982 Page 42-43Micro Systèmes numéro 22 mar/avr 1982 Page 44-45Micro Systèmes numéro 22 mar/avr 1982 Page 46-47Micro Systèmes numéro 22 mar/avr 1982 Page 48-49Micro Systèmes numéro 22 mar/avr 1982 Page 50-51Micro Systèmes numéro 22 mar/avr 1982 Page 52-53Micro Systèmes numéro 22 mar/avr 1982 Page 54-55Micro Systèmes numéro 22 mar/avr 1982 Page 56-57Micro Systèmes numéro 22 mar/avr 1982 Page 58-59Micro Systèmes numéro 22 mar/avr 1982 Page 60-61Micro Systèmes numéro 22 mar/avr 1982 Page 62-63Micro Systèmes numéro 22 mar/avr 1982 Page 64-65Micro Systèmes numéro 22 mar/avr 1982 Page 66-67Micro Systèmes numéro 22 mar/avr 1982 Page 68-69Micro Systèmes numéro 22 mar/avr 1982 Page 70-71Micro Systèmes numéro 22 mar/avr 1982 Page 72-73Micro Systèmes numéro 22 mar/avr 1982 Page 74-75Micro Systèmes numéro 22 mar/avr 1982 Page 76-77Micro Systèmes numéro 22 mar/avr 1982 Page 78-79Micro Systèmes numéro 22 mar/avr 1982 Page 80-81Micro Systèmes numéro 22 mar/avr 1982 Page 82-83Micro Systèmes numéro 22 mar/avr 1982 Page 84-85Micro Systèmes numéro 22 mar/avr 1982 Page 86-87Micro Systèmes numéro 22 mar/avr 1982 Page 88-89Micro Systèmes numéro 22 mar/avr 1982 Page 90-91Micro Systèmes numéro 22 mar/avr 1982 Page 92-93Micro Systèmes numéro 22 mar/avr 1982 Page 94-95Micro Systèmes numéro 22 mar/avr 1982 Page 96-97Micro Systèmes numéro 22 mar/avr 1982 Page 98-99Micro Systèmes numéro 22 mar/avr 1982 Page 100-101Micro Systèmes numéro 22 mar/avr 1982 Page 102-103Micro Systèmes numéro 22 mar/avr 1982 Page 104-105Micro Systèmes numéro 22 mar/avr 1982 Page 106-107Micro Systèmes numéro 22 mar/avr 1982 Page 108-109Micro Systèmes numéro 22 mar/avr 1982 Page 110-111Micro Systèmes numéro 22 mar/avr 1982 Page 112-113Micro Systèmes numéro 22 mar/avr 1982 Page 114-115Micro Systèmes numéro 22 mar/avr 1982 Page 116-117Micro Systèmes numéro 22 mar/avr 1982 Page 118-119Micro Systèmes numéro 22 mar/avr 1982 Page 120-121Micro Systèmes numéro 22 mar/avr 1982 Page 122-123Micro Systèmes numéro 22 mar/avr 1982 Page 124-125Micro Systèmes numéro 22 mar/avr 1982 Page 126-127Micro Systèmes numéro 22 mar/avr 1982 Page 128-129Micro Systèmes numéro 22 mar/avr 1982 Page 130-131Micro Systèmes numéro 22 mar/avr 1982 Page 132-133Micro Systèmes numéro 22 mar/avr 1982 Page 134-135Micro Systèmes numéro 22 mar/avr 1982 Page 136-137Micro Systèmes numéro 22 mar/avr 1982 Page 138-139Micro Systèmes numéro 22 mar/avr 1982 Page 140-141Micro Systèmes numéro 22 mar/avr 1982 Page 142-143Micro Systèmes numéro 22 mar/avr 1982 Page 144-145Micro Systèmes numéro 22 mar/avr 1982 Page 146-147Micro Systèmes numéro 22 mar/avr 1982 Page 148-149Micro Systèmes numéro 22 mar/avr 1982 Page 150-151Micro Systèmes numéro 22 mar/avr 1982 Page 152-153Micro Systèmes numéro 22 mar/avr 1982 Page 154-155Micro Systèmes numéro 22 mar/avr 1982 Page 156-157Micro Systèmes numéro 22 mar/avr 1982 Page 158-159Micro Systèmes numéro 22 mar/avr 1982 Page 160-161Micro Systèmes numéro 22 mar/avr 1982 Page 162-163Micro Systèmes numéro 22 mar/avr 1982 Page 164-165Micro Systèmes numéro 22 mar/avr 1982 Page 166-167Micro Systèmes numéro 22 mar/avr 1982 Page 168-169Micro Systèmes numéro 22 mar/avr 1982 Page 170-171Micro Systèmes numéro 22 mar/avr 1982 Page 172-173Micro Systèmes numéro 22 mar/avr 1982 Page 174-175Micro Systèmes numéro 22 mar/avr 1982 Page 176-177Micro Systèmes numéro 22 mar/avr 1982 Page 178-179Micro Systèmes numéro 22 mar/avr 1982 Page 180-181Micro Systèmes numéro 22 mar/avr 1982 Page 182-183Micro Systèmes numéro 22 mar/avr 1982 Page 184-185Micro Systèmes numéro 22 mar/avr 1982 Page 186-187Micro Systèmes numéro 22 mar/avr 1982 Page 188-189Micro Systèmes numéro 22 mar/avr 1982 Page 190-191Micro Systèmes numéro 22 mar/avr 1982 Page 192-193Micro Systèmes numéro 22 mar/avr 1982 Page 194-195Micro Systèmes numéro 22 mar/avr 1982 Page 196-197Micro Systèmes numéro 22 mar/avr 1982 Page 198-199Micro Systèmes numéro 22 mar/avr 1982 Page 200-201Micro Systèmes numéro 22 mar/avr 1982 Page 202-203Micro Systèmes numéro 22 mar/avr 1982 Page 204-205Micro Systèmes numéro 22 mar/avr 1982 Page 206-207Micro Systèmes numéro 22 mar/avr 1982 Page 208-209Micro Systèmes numéro 22 mar/avr 1982 Page 210-211Micro Systèmes numéro 22 mar/avr 1982 Page 212-213Micro Systèmes numéro 22 mar/avr 1982 Page 214-215Micro Systèmes numéro 22 mar/avr 1982 Page 216-217Micro Systèmes numéro 22 mar/avr 1982 Page 218-219Micro Systèmes numéro 22 mar/avr 1982 Page 220-221Micro Systèmes numéro 22 mar/avr 1982 Page 222-223Micro Systèmes numéro 22 mar/avr 1982 Page 224-225Micro Systèmes numéro 22 mar/avr 1982 Page 226-227Micro Systèmes numéro 22 mar/avr 1982 Page 228-229Micro Systèmes numéro 22 mar/avr 1982 Page 230