CODINGHEBDOGICIEL ★ COURS D'ASSEMBLEUR - HEBDOGICIEL n°88 ★

La page pédagogique d'hebdogiciel 088 : Formation à l'assembleurCoding Hebdogiciel

La page pédagogique d'hebdogiciel : Formation à l'assembleur

Je vous donne directement l'organigramme et l'algorithme, à vous de remonter la piste si vous sentez certaines difficultés à appréhender ta méthode qui a abouti à ce résultat.

Organigramme méthode 1

En voici l'algorithme qui en découle directement :

100 charger dans A le premier octet de poids faible

110 additionner dans A le second octet de poids faible

120 stocker l'octet de poids faible du résultat

130 charger dans A le premier octet de poids fort

140 si le bit de carry est égal à 0 alors aller en 160

150 incrémenter le contenu de A (en binaire, la retenue re peut être égale qu à 0 ou 1 donc lorssqu'il y a retenue, nous devons ajouter 1 à l'un des deux opérandes de poids fort)

160 additionner dans A le second octet de poids fort

170 stocker l'octet de poids fort de notre résultat

180 fin de l'addition seize bits

Dans cette méthode, nous n'aurons donc à nous préoccuper de la retenue qu'après avoir effectué et rangé le résultat de notre première addition. Si vous désirez étendre cet algorithme a plus de deux octets, il vous suffira de dupliquer la séquence des lignes 130 à 170 de notre algorithme.

Méthode 2 : nous arrivons maintenant au problème de l'addition avec report automatique de la retenue. L'opération ressemble à ceci :

A < – (A) + (adresse deuxième opérande) + C

Dans cène méthode, nous allons devoir nettoyer le contenu du bit de Carry avant de pratiquer la première opération. Si nous oublions de réaliser ce nettoyage, nous risquons (une fois sur deux) d'ajouter à notre résultat de poids faible une retenue qui n'a rien à voir avec notre calcul. En revanche d'un point de vue stockage des données et des résultats, nous n'aurons pas de différence sensible avec la méthode précédente.

Organigramme méthode 2

Regardons maintenant l'algorithme :

100 nettoyer la Carry

110 charger le premier octet de poids faible

120 additionner dans A le second octet de poids faible

130 stocker l'octet de poids faible du résultat

140 charger dans A le premier octet de poids fort

150 additionner dans A le second octet de poids fort

160 stocker l'octet de poids fort du résultat

170 fin de l'addition seize bits

Vous remarquerez qu'après notre première opération, nous n'avons pas â nous occuper de la retenue. En effet, comme le processeur ajoute automatiquement celle-ci lors de l'instruction d'addition, s'il n'y avait pas de retenue lors de l'opération précédente nous ajouterons 0 (car C = 0) lors de notre seconde addition, ce qui ne modifie en rien notre résultat !

Comme pour la première méthode, si vous désirez étendre cette formule à plusieurs octets. il vous suffira de répéter la séquence des lignes 140 à 160. Je vous sens intrinsèquement réjoui à l'idée d'exploiter dans tous les sens ces magnifiques algorithmes d'addition multi-octets. Mais vous ne vous en contenterez pas. j'en suis sûr. Car quitte a additionner sur seize bits, autant réaliser le même exploit, toujours sur autant de bits, mais en soustrayant cette fois.

Là encore nous allons nous trouver confrontés aux deux méthodes couramment usitées par les micro-processeurs lors de cette opération arithmétique. Les uns soustraient, sans se préoccuper le moins du monde du bit de retenue, alors que les autres enlèvent systématiquement la valeur de C du résultat qu'ils ont obtenu. Nous avons cette fois-ci aussi deux algorithmes à construire, un pour chaque cas de figure. Repartons donc à l'étude de nos deux méthodes, séparément. Auparavant, rafraîchis-sons-nous la mémoire au niveau de la structure de données que nous utilisons pour ces opérations :

  • d'une part deux octets nous servent à stocker le premier opérande
  • d'autre part deux octets s'occuperont du rangement du deuxième opérande
  • enfin deux octets conserveront le résultat.

Méthode 1 : nous consacrerons nos efforts, en premier, à la soustraction sans report automatique de la retenue.

Encore une fois, je vous donne directement l'organigramme et l'algorithme de cette méthode de calcul sur seize bits. Si vous éprouvez la moindre difficulté à appréhender le raisonnement qui aboutit à ce résultat, reprenez la démarche explicitée antérieurement dans ce cours et effectuez une nouvelle fois l'ensemble du raisonnement

Organigramme méthode 1

https://CPCrulez.fr - HEBDOGICIEL n°88 - 21 juin 1985

★ ANNÉES: 1985
★ AUTEUR(S): ???

Page précédente : La page pédagogique d'hebdogiciel 087: Formation à l'assembleur

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding » La page pédagogique d'hebdogiciel 085
» Coding » La page pédagogique d'hebdogiciel 131: Les Instruction de Transfert
» Coding » La page pédagogique d'Hebdogiciel n°86
» Coding » La page pédagogique d'hebdogiciel 127: La Memoire
» Coding » La page pédagogique d'hebdogiciel 082: Generalite sur les Routines
» Coding » La page pédagogique d'hebdogiciel 119: Registres et Adressage
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 259 millisecondes et consultée 3151 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.