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 : 64 - 65  |  Aller à la page   OK
Pages suivantes >
64 65
Le microprocesseur 6502 est l'un de ceux qui dispose du plus grand nombre de modes d'adressage. Etude csS DRDC ION > E NON OUI RESSION ADRESSE -LI CODE (ARE., A, informations sont indispensables pour bien comprendre ce qui suit et parvenir au programme de désassemblage. La figure 5 représente les registres internes du 6502. Ces registres sont au nombre de six  : — 1 registre accumulateur A. — 2 registres d'index X et Y. — Le compteur ordinal PC. — Le pointeur de pile S. — Le registre d'état PSR (Processor Status Register). Il s'agit ici de registres 8 bits, sauf bien sûr le compteur ordinal dont la longueur est de 16 bits puisqu'il peut adresser 64 K-octets de mémoire. Le tableau 1 donne la liste des codes opérations du 6502, de ses mnémoniques et des modes d'adressage. Cette liste nous sera précieuse quand nous établirons la table des instructions *. Les modes d'adressage du 6502 sont fort nombreux (encadré 1). A ce point de vue, ce microprocesseur est, avec le Z-80, l'un des « 8 bits » les plus complets. * Pour une description détaillée des codes mnémoniques, nous vous conseillons de lire l'article de D.J. David, paru dans le n°9 de Micro-Systèmes p.78 et 79. Fig. 4. - Version définitive de l'organigramme correspondant au désassembleur. Bien entendu, il pourrait être encore amélioré... Fig. 5. - Les registres internes du 6502. MARE SSION ADRESSE InAPPF SS bN CC/NEF NU ADRESSE COURANSE ACCUMULATEUR A REGISTRE INDEX X REGISTRE INDEX Y PCH 1 PC L 8 COMPTEUR ORDINAL PC POINTEUR DE PILE $ NON lv I 191011IzIcl REGISTRE D'ETAT PSR Fig. 4 OUI Fig. 5 " R'teue1 v vrai• Zéro 1 v résultat nul Interruption 1 v déconnecté e Mode décimal I v vrai• Cde arrêtt. Dépassement 1 v vrai e Négatif 1 v Tableau I. - Les instructions du 6502. Leur longueur peut varier de I à 3 octets. 1 ° I 2 3 4 5 6 7 8 9 A II I D E f 0 BRK ORA ind X ORA PO ASL PO PHP ORA imm ASL A ORA abs ASL abs I BPL ORA ind Y ORA PDX ASL PDX CLC ORA abs Y ORA abs X ASL abs X 2 1SR AND ind X BIT PO AND PO ROL PO PLP AND imm ROL A BIT abs AND abs ROL abs 3 BMI AND ind Y AND PDX ROL PDX SEC AND abs Y AND abs X ROL abs X 4 RTI EOR ind X EOR PO LSR PO PHA EOR imm LSR A JMP abs EOR abs LSR abs 5 BVC FOR ind Y EOR PDX LSR PDX CLI EOR abs Y EOR abs X LSR abs X 6 RTS ADC ind X ADC PO ROR PO PLA ADC imm ROR A JMP ind ADC abs ROR abs 7 BVS ADC ind Y ADC PDX ROR PDX SEI ADC abs Y ADC abs X ROR abs X 8 STA ind Xl STY PO STA PO STX PO DEY TXA STY abs STA abs STX abs 9 BCC STA ind Y STY PDX STA PDX STX POY TYA STA abs Y TXS STA abs X A LDY imm LDA ind XLDX imm LDY PO LDA PO LDX PO TAY LDA imm TAX LDY abs LDA abs LDX abs B BCS LDA ind Y. LDY PDX LDA PDX LDX POY CLV LDA abs Y TSX LDY abs X LDA abs X LDX abs Y C CPY imm CMP ind X CPY PO CMP PO DEC PO INY CMP imm DEX CPY abs CMP abs DEC abs D BCS CMP ind Y CMP PDX DEC PDX CLD CMP abs Y CMP abs X DEC abs X E CPX imm SBC indX, CPX PO SBC PO INC PO IN X SBC imm NOP CPX abs SBC abs INC abs F BEQ SBC ind Y SBC PDX INC PDX SED SBC abs Y SBC abs X INC abs X Exemple  : STY page 0 indexée par X = 94 64 — MICRO-SYSTEMES Mars-Avril 1982
Etude d'un désassembleur Etude Code op (decimal) Code op (hem]) L'organigramme ayant été élaboré et les renseignements nécessaires rassemblés, nous pouvons maintenant établir la table des instructions. Le choix du BASIC pour notre désassembleur tient compte du fait qu'un programme de désassemblage n'a pas, généralement, besoin d'être exécuté très rapidement. D'autre part, ce langage est à la disposition de la quasi-totalité des utilisateurs de micro-ordinateurs. Ainsi, nous emploierons naturellement les 2 instructions BASIC permettant de lire et d'écrire en mémoire  : PEEK (I) délivre le contenu (en décimal) de l'adresse décimale I. POKE I, J « écrit » dans la mémoire d'adresse décimale I, l'octet J (0 J 255). La table des instructions sera « incorporée » au programme de désassemblage au moyen de l'instruction DATA, sous forme de données chaînes de caractères. Chacune des données se composera de trois zones de longueur fixe et d'une zone de longueur variable (fig. 6).• zone 1 (3 caractères)  : valeur décimale du code opération.• zone 2 (2 caractères)  : valeur hexadécimale du code opération.• zone 3 (1 caractère)  : nombre d'octets de l'instruction (code opération + opérande).• zone 4 (nombre de caractères Nombre d'octets de I instruction Code mnémonique• et divers Fig. 6 - 4/oric., constituent chacune des instructions de la table  : les deux premières représentent respectivement la valeur décimale puis hexadécimale du code-opération. La troisième zone, d'un seul caractère, précise le nombre d'octets de l'instruction. Enfin, la dernière zone, d'une longueur variable, représente le mnémonique éventuellement associé à certains renseignements complémentaires. La table des instructions variable)  : code mnémonique et éventuellement renseignements complémentaires. Tableau 2. — Conventions de représentation des grandeurs manipulées dans le programme. L LL  : adresse ou déplacement sur 8 bits  : adresse sur 16 bits  : adressage immédiat (L• X)  : adressage indirect pré-indexé (L)• Y  : adressage indirect post-indexé L• X  : adressage indexé page 0, X L• Y  : adressage indexé page 0, Y LL• X  : adressage absolu indexé X LL• Y  : adressage absolu indexé Y L  : relatif LL  : absolu (LL)  : indirect absolu M  : contenu de l'adresse M MS  : contenu de la mémoire adressée par le pointeur de pile 1...]  : renseignements complémentaires C  : retenue —  : complément de la retenue Z  : zéro  : interruption D  : mode décimal B  : arrêt V  : dépassement N  : négatif Nous avons adopté, pour toutes les informations manipulées dans la table des instructions du programme, les conventions du tableau 2. Tableau 3. — « Carte » de l'espace mémoire du micro-ordinateur CBM 3032. Adresses décimales Adresses hexadécimales Le programme Le listing du programme complet est donné figure 7. C'est la simple transcription en BASIC, de l'organigramme général de la figure 4. Nous retrouvons ainsi  : • lignes 10 à 70  : en-tête et choix « impression ou affichage sur l'écran ».• lignes 80 à 220  : initialisation et choix de la base d'adressage.• lignes 225 à 400  : corps du programme de désassemblage.• lignes 1000 à 1 080  : sous-programme de lecture mémoire.• lignes 1 100 à 1 170  : sous-programme de recherche dans la table des instructions.• lignes 1 200 à 1 330  : sous-programme « d'alignement » des caractères ASCII.• lignes 4 500 à 4 740  : sous-programmes conversion hexadécimal/décimal et décimal/hexadécimal.• lignes 5 000 à 6 000  : table des instructions. En outre, il est important de connaître l'organisation de l'espace mémoire de la machine utilisée. A titre d'exemple, celle du micro-ordinateur CBM de Commodore apparaît tableau 3. Il y a lieu de noter que le tampon cassette n°2 est fort utile pour loger de petits programmes en langage d'assemblage. ■ Gérard GUERIN * * Gérard Guérin est ingénieur-conseil. Contenu 0 000 à 0 632 0000 à 0278 Variables système (constantes, pointeurs, etc.) 0 634 à 0 825 027A à 0339 Tampon cassette n°1 0 826 à 1 017 033A à 03F9 Tampon cassette n°2 1 024 à 32 767 0400 à 7FFF Mémoire vive disponible 32 768 à 36 863 8000 à 8FFF Mémoire d'écran vidéo 36 864 à 49 151 9000 à BFFF Extension ROM 49 152 à 57 592 C000 à E0F8 Interpréteur BASIC 57 593 à 64 784 E0F9 à FD 10 Divers (sous-programmes clavier, écran, etc.) 64 785 à 65 535 FD11 à FFFF Moniteur Mars-Avril 1982 MICRO-SYSTEMES — 65



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