Micro Systèmes n°49 janvier 1985
Micro Systèmes n°49 janvier 1985
  • Prix facial : 24 F

  • Parution : n°49 de janvier 1985

  • Périodicité : mensuel

  • Editeur : Société Parisienne d'Edition

  • Format : (203 x 271) mm

  • Nombre de pages : 198

  • Taille du fichier PDF : 137 Mo

  • Dans ce numéro : dossier sur l'ordinateur biologique.

  • Prix de vente (PDF) : gratuit

Dans ce numéro...
< Pages précédentes
Pages : 152 - 153  |  Aller à la page   OK
Pages suivantes >
152 153
UTILITAIRE il est utile de préciser que son jeu d'instructions peut être identifié à celui du Z 80. Les habitués de ce microprocesseur ne seront donc pas dépaysés, d'autant plus que les mnémoniques utilisés sont ceux de Zilog. Le tableau des instructions assemblables et leur syntaxe sont explicitées dans l'encadré 1. Il est à noter deux exceptions à la syntaxe classique, qui sont  : EX (SP).HL JP (H L) et ont pour syntaxe EX (SP).HL JP(HL) Ce sont les seules. De plus, la classique virgule séparant d'habitude les instructions des opérandes sera toujours remplacée par un point, et l'écriture des instructions se fera en majuscules. Certaines instructions du Z 80 nécessitent un ou plusieurs opérandes, qui sont en quelque sorte les paramètres requis par ces instructions. Il en existe plusieurs catégories, qui sont examinées figure 1. Dans le cas où cet opérande est une constante, une adresse absolue ou une case mémoire, celui-ci peut être exprimé dans différents sytèmes de numération  : • HEXADECIMAL  : La base 16 est spécifiée par l'adjonction du symbole « $ » avant l'écriture du nombre lui-même. LD A.$3D (charger la valeur hexa 3D dans A).• DECIMAL  : L'expression d'une donnée dans ce système est indiquée à l'assembleur par l'ajout du caractère « & » avant la valeur littérale. LD FIL.&48354• BINAIRE  : Afin de signifier au logiciel l'emploi de cette base, le signe » % » doit être placé avant la constante. Il faut toutefois signaler que la taille de celle-ci ne peut être que l'octet, et que chai un des 8 bits doit être littéralement composé pour un assemblage correct. LD BC.%01011101 L'utilisation des bases 10 ou 16 peut, elle, se faire indifféremment avec des constantes 8 ou 16 bits, sans format déterminé du nombre de chiffres. Toutefois, dans le cas où la donnée choisie serait supérieure à 152 — MICRO-SYSTEMES Liste des instructions disponibles et leur syntaxe ADC A.reg ADC A.nnADC HL.dblADD A.reg ADD A.nnADD HL.dblADD IX.dblADD IY.dblAND reg ANDnnBITn.reg CALLnnnnCALL cond.nnnnCCF CP reg CPnnCPDR CPD CPI CPIR CPL DAA DEC reg DEC dblDl DJNZnnnn(*) El EX(SP). HL EX(SPI.IX EX(SP),IY EX AF.AF'EX DE.HL EXX HALT MO M 1 M2 N reg.(C) N A.(nn) NC reg NC dblND NDR NI NIR JP(HL) JP(IX) JP(IY) JPnnnnJP cond.nnnnJRnnnn(•) JR cond.nnnn(•) LD (nnnn).A LD Innnnl.dblLD (BC).A LD (DE).A LD reg.reg LD reg.nnLD A.IBC) LD A.IDE) LD A.Innnn) LD dbl.Innnn) LD dbl.nnnnLD A.1 LD A.R LD I.A LD R.A LD SP.HL LD SP.IX LD SP.IY LDI LDIR LDD LDDR NEG NOP OR reg ORnnOUTD OUTDR OUTI OUTIR OUT (C).reg OUT (nn).A POP dblPUSH dblRESn.reg RET RET cond RL reg RLA RLC reg RLCA RLD RR reg RRA RRC reg RRCA RRD RST 00 RST 08 RST 18 RST 20 RST 28 RST 30 RST 38 SBC A.nnSBC A.reg SBC HL.dblSCF SETn.reg SLA reg SRA reg SRL reg SLI reg SUB reg SUBnnXOR reg XORnnRETI RETN PSEUDO-INSTRUCTIONS  : ORGnnnnDEFSnnnnDEFBnnDEFWnnnnDEFM xxxx (*)• xxxx (*) (*) Remarques. — Dans le tableau suivant, voici les abréviations utilisées. reg  : équivalent à A, B,C, D, E, H, L (HL), (IX+dd), (IY+dd) dbl  : correspond à BC, DE, HL, SP ou BC, DE, HL, AF BC, DE, IX, SP BC, DE, IY, SP, dans certains cas. cond  : un des suffixes condition  : Z, NZ,C, NC, P,M, PO, PE (sauf les quatre derniers pour les sauts relatifs)nn  : opérande 8 bitsnnnn  : opérande 16 bits n  : opérande 4 bits (compris entre 0 et 7) implicite (*)  : se référer au paragraphe correspondant. Les éventuels espaces doivent être écrits comme indiqué. 255 pour un opérande 8 bits, le programme ne conservera que l'octet bas du nombre. Ex.  : LD E.$40F est équivalent à LD E.$F. La programmation symbolique Il existe encore d'autres moyens pour exprimer un opérande. Parmi ceux-ci, les labels. Leur utilisation requiert quelques explications. Un label est employé comme un moyen pratique de désignation d'un nombre. A ce titre, il peut être com- paré aux variables Basic utilisées habituellement. Toutefois, son emploi est plus diversifié. En effet, le nombre qu'il égale peut représenter un octet, deux octets, et surtout, une adresse mémoire. C'est en fait sa fonction la plus fréquente, car il paraît commode de désigner un sous-programme, une référence mémoire par une « variable ». Ceci évite d'avoir à calculer, quand ils existent, les déplacements requis par les instructions du type branchement relatif, et qui sont fréquemment une source d'erreurs à l'assemblage. Leur emploi évite, de plus, l'utilisation systématique de l'adressage absolu dans le cas des sauts  : en effet, à l'écriture du logiciel, l'adresse d'une instruction n'est a priori jamais évidente. D'une manière générale, les labels seront exprimés de la façon suivante  : symbole « # » suivi de deux caractères quelconques (mnémotechniques) exactement. Ex.  : # AB ; avec l'instruction  : JP # AB. Afin de pouvoir être utilisé comme opérande et pour permettre à l'assembleur de le Janvier 1985
UTILITAIRE TYPE DE DONNEE FORMAT EXEMPLE AVEC INSTRUCTION Registre simple A, B,C, D, E, H, L LD D.L ; LD A.(hl) (HL), (IX+d), (IY+d) I,R. Registre double BC, DE, HL, AF, SP, IX, IY PUSH BC ; DEC DE Adresse absolue Adr (*) CALL NC.$D5F3 ; JR Z.&49152 Adresse relative +/— dd (**) JR + 28 Constante 8 bitsnn(*) LD A.$F7 16 bitsnnnn(*) LD DE.$400C Emplacement en mémoire (Adr) (*) LD HLM 19464) Adr = adresse sur 16 bits dd = déplacement compris entre — 128 et + 127 (décimal)nn= 1 octet (*) Se référer au mode d'utilisation des opérandes et bases numériques. (**) Se reporter au paragraphe spécifique aux opérandes relatifs. Fig. I. — Les différents opérandes pouvant être rencontrés avec le Z 80. # CD = &2048 ; #RT=$E428 #AB= #86 #LM= #CK+$1 ; #TR= #DB—&23 #DC= #GT+ #RP+ #AS+$7F #QS= #HX—#XM+ #ZR—SFFCE Fig. 2/A. — Cas de la définition avec le signe « = ». JR #AD+$1 ; CALL NC.#DE—#BC+&33 LD HL.(#CS—$2) ; 1D A.1# RR) ; LD D.(1X+ # DP) CP #28+ #E3 ; OUT (#PO—& 1).A Fig. 2/b. — Cas de l'emploi en tant qu'opérande. Fig. 2. — Divers exemples et utilisation des labels. remplacer par sa valeur légitime, un label doit être défini à un endroit choisi du programme. Pour le définir à l'adresse d'une instruction, on doit procéder ainsi  : Avant l'écriture du mnémonique proprement dit, les trois caractères composant le label peuvent être frappés, suivis directement par l'instruction considérée. L'espace de séparation n'est pas obligatoire. La définition d'un label en tant que « variable » (constante) s'effectuera comme suit  : à l'emplacement choisi, le nom doit être écrit, suivi du signe « = », puis de l'opérande (label ou nombre fig. 2). Cette définition peut être considérée comme une (pseudo) instruction et implique donc à sa suite un « : », si l'on veut inclure d'autres mnémoniques sur la même ligne. Précisons que 128 labels peuvent au maximum être attribués dans un programme. De Janvier 1985 plus, un même label peut être redéfini et la valeur courante sera la dernière à avoir été donnée avant la fin de la première passe, qui consiste à collecter des valeurs des différents labels. Le calcul des sauts en avant nécessite en effet deux « assemblages » consécutifs. Cette particularité permet, de plus, l'utilisation de labels qui seront définis plus loin  : par exemple, la définition des constantes à la fin du programme évite de surcharger le listing. Il est possible d'effectuer des opérations sur les labels, comme de définir des étiquettes en fonction d'autres et de valeurs numériques, ajoutées ou soustraites entre elles. Cette possibilité est utilisable dans deux types de situations  : La définition de labels avec le signe « = »  : # XX = (expression), et l'emploi comme opérande  : LD Reg. (expression). L'(expression) est de la forme suivante  : #XX± #XX±... ±nnElle est constituée d'une somme algébrique d'un nombre variable de labels (pouvant être nul) et d'une constante numérique (facultative) exprimée dans l'une des bases précitées. Ceci est illustré par quelques exemples figure 2. Dans le premier cas, le respect de la fonction de la passe 1 implique que les labels (s'il y en a) constituant la partie droite du « = » aient tous été définis avant leur usage comme opérandes de ce type. Ensuite, la constante doit être placée impérativement à la fin de l'expression. Enfin, le fait d'employer un signe « — » a pour effet d'opposer tout ce qui le suit (effet de parenthèses). Cette possibilité de sommation facilite l'indexation d'une zone de variables, un seul label servant de référence à toute la table considérée. Une expression comme celle définie ci-dessus est utilisable au même titre que n'importe quel opérande. De façon générale, les sommations seront calculées modulo 65536 pour une constante 16 bits, et modulo 256 pour une donnée 8 bits. Parmi les possibilités de désignation d'un opérande, signalons encore celles-ci  : • La constante code de caractère. Elle permet de disposer du code ASCII d'un symbole comme paramètre d'une instruction. Le caractère choisi doit être placé entre deux guillemets. LD I-I. « Z » est équivalent à LD H.&90• L'opérande spécifique aux instructions de branchement relatif. Le caractère relatif de ces déplacements explique que l'on a adjoint la possibilité d'exprimer ceux-ci par un octet décimal précédé du signe « + » ou « — » pour désigner des sauts respectivement en avant et en arrière, par rapport à l'adresse de l'instruction suivante. Le précédent nombre devra être frappé sans le signe « & » habituel, et devra, à cause des contraintes inhérentes aux sauts relatifs, être compris entre 0 et 127 pour un saut positif, et entre — 128 et 0 pour un saut négatif. Boucle vide LD B.&0 DJNZ —2 RET L'adresse d'aboutissement est calculée en ajoutant le déplacement signé à l'adresse de l'instruction suivante. Plus simplement, l'opérande de ce type de branchements peut être un label ou une adresse absolue. Remarquons enfin que les déplacements dans les instructions utilisant les registres index IX ou IY sont exprimés comme des opérandes normaux. Les pseudo-instructions Nous allons à présent examiner le jeu des pseudo-instructions disponibles.• Le couple  : « [ » et «)  » a déjà été explicité.• ORG a pour fonction d'indiquer à l'assembleur l'adresse mémoire à partir de laquelle seront codées les instructions qui la suivent dans le listing. Cette adresse courante d'assemblage, ou d'origine, peut être modifiée à tout moment grâce à l'utilisation répétée de ORG. Ceci se révèle particulièrement intéressant lorsque le programme se compose de différentes sections indépendantes, permettant ainsi l'assemblage total en un appel unique. L'opérande de ORG peut être aussi un label, à la condition expresse que celui-ci ait été défini avant. Dans le cas où un MICRO-SYSTEMES — 153



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