CODINGHEBDOGICIEL ★ FORMATION A L'ASSEMBLEUR PRATIQUE LANGAGE MACHINE SUR AMSTRAD ★

La page pédagogique d'hebdogiciel 119: Registres et AdressageCoding Hebdogiciel

Chose promise, chose due : nous allons entrer dans la cathédrale ! Voici  le   Z80  dans  toute  sa splendeur


Schéma 1

Attention, la visite va commencer !

ACCUMULATEUR  (registre A):
C'est le registre le plus utilisé, il sert à tout : transferts de données, calculs arithmétiques et logiques. C'est aussi lui qui possède le plus d'instructions. Par exemple, si vous voulez transférer une valeur d'une case mémoire au registre B, vous devrez d'abord la charger dans l'accumulateur car H n'existe pas d'instruction pour la transférer directement dans le registre B.

DOUBLES REGISTRES ( B , C , D , E , H , L ) :
Ces six registres, quand ils sont utilisés seuls, se ressemblent comme des frères et ont la même utilité : ce sont des accumulateurs secondaires. Seulement, voila, si je les ai appelés doubles registres, c'est qu'il y a une raison ! Ils sont le plus souvent utilisés par paires : BC. DE et HL Dans ce cas. ils deviennent des registres 16 bits et servent à pointer une adresse ou même à exécuter certaines opérations sur 16 bits. Le double registre HL est alors le principal des trois, les instructions qui l'utilisent sont plus nombreuses et plus rapides. Sachez des à présent qu'il faut, chaque fois que c'est possible, réserver HL pour pointer la mémoire.

REGISTRE D'ÉTAT (F) :
Voici un registre unique qui a une utilité bien particulière. Il se nomme F, ce qui signifie Flags et en français Drapeaux. Il sert à renseigner sur les éventuels résultats de l'instruction qui vient d'être exécutée. Il est unique parce que c'est le seul à traiter ses bits de manière indépendante. Six d'entre eux sont appelés Indicateurs et renseignent, selon qu'ils sont à t ou a 0, sur l'étal du microprocesseur. Voici le rôle exact de chacun de ces indicateurs :

C Carry : C'est l'indicateur de retenue, très utilisé. Il sert principalement à savoir s'il y a une retenue après une instruction arithmétique. Dans les instructions de décalage, il permet de tester un bit et iI est mis a 0 par les instructions booléennes.

N Soustraction : un indicateur que vous pouvez oublier, car il est testé par le microprocesseur uniquement. Il est initialisé à l par toutes tes instructions de soustraction et A 0 par les instructions d'addition.

P/O Panté/Overflow : Il a plusieurs significations, selon le type d'opération exécuté . Pour les opérations arithmétiques, c'est un indicateur de dépassement de capacité (over-fiow). Pour tes Instructions d'entrées, logiques et de rotation, c'est un bit de partie : 1 pour parité paire et 0 pour impaire.

A/C Demi-retenue : Cet indicateur contient toute retenue du bit 3 vers le bit 4 résultant d'une instruction arithmétique.

Z Zéro : L'indicateur le plus utilisé avec Carry. et le plus facile à comprendre. Il est mis à 1 chaque fois qu'une opération arithmétique ou logique produit un résultat nul et à 0 dans tous les autres cas.

S Signe : cet indicateur acquiert la valeur du bit le plus significatif (souvenez-vous, le bit 7) du résultat de toute Instruction arithmétique ou logique.

BANQUE DE REGISTRES AUXILIAIRES :
Il s'agit là de la copie conforme de tous les registres que nous venons de visiter. Le programmeur a la possibilité de choisir entre la première banque et la banque secondaire, cela fonctionne un peu comme un échange standard. Deux instructions se chargent de réaliser cet échange, une qui s'occupe des registres A et F avec A' et F' et l'autre les registres B. C, D, E. H et L avec B', C' , D' , E'. H' et L'. La banque de registres auxiliaires est utilisée dans l'Amstrad par le système d'exploitation, ce qui veut dire qu'il est assez difficile de l'utiliser sans risquer de planter la machine.

POINTEUR DE PILE :
La pile est une idée géniale ! Nous en parlerons plus tard. Ce registre 16 bits contient l'adresse du haut de la pile. La seule chose à retenir, c'est que le bas de la pile est en haut et le haut en bas I Ne vous affolez pas, il suffit de le savoir une bonne fois pour toutes. Si, par exemple, vous déposez quelque chose sur la plie, la pile monte et le pointeur de pile se décrémente. Inversement si vous récupérez celle chose.

COMPTEUR ORDINAL :
Pointe sur la prochaine instruction. Ce registre ne peut être programmé directement, il sert au microprocesseur A savoir a quelle adresse se trouve la prochaine instruction à exécuter. Par exemple, quand, en basic, vous tapez CALL &8000. vous mettez la valeur &8000 dans le compteur ordinal et le microprocesseur exécutera l'instruction figurant à cette adresse.

LES REGISTRES D'INDEX (IX , IY) :
Ils permettent do traiter la notion d'indice. Nous verrons cela en détail plus tard. Sachez pour l'instant que ce sont deux registres 16 bits supplémentaires qui sont utilisés comme HL

INTERRUPTION ET RAFRAÎCHISSEMENT ( I , R ) :
Je ne dirai rien sur ces deux registres qui ne servent quasiment jamais au programmeur, et ce n'est pas le moment de s'embrouiller le cerveau avec ces deux-là !

RÉCAPITULONS

La visite est maintenant terminée. mais nous reviendrons souvent dans ce temple de votre ordinateur préféré t Vous savez maintenant comment est fait te Z80, ce qu'est un octet, un bit , une case mémoire. Mais que se passe-t-il quand le microprocesseur exécute une instruction ? Voilà ce que vous attendez de savoir avec impatience ! Ce qui se passe ? Vous le saurez... Tout de suite !!

EXÉCUTION

Prenons trois instructions sans nous inquiéter de leur sens, le principal étant de comprendre ce qui se passe dans le microprocesseur quand vous les faites exécuter. Un programme en langage machine est implanté dans la mémoire et commence à une adresse précise. Pour nos exemples, nous prendrons toujours l'adresse S 8000. Une instruction assembleur, une fois implantée dans la mémoire, peut prendre entre 1 et 4 octets; choisissons trois instructions à 1 octet :


Schéma 2

RÉCRÉATION

Voici aujourd'hui de quoi concurrencer la rubrique deux lignes, ça s'Intitule marteau piqueur.
OUT &BC00,8 :OUT &BD00,1

Pour arrêter le massacre, remplacez le 1 par 0.

RECTIFICATIF

Le mois dernier, deux erreurs se sont glissées (comme elles savent si bien le faire) dans le listing 3 , les INKEYS sont a remplacer par INKEY (ça vous l'aviez trouvé) et la ligne 90 est à remplacer par OUT &BD00,A.

Le mois prochain nous affronterons la mémoire d'éléphant de l'Amstrad

Hebdogiciel n°119 , Patrick Dublanchet

★ LICENCE: COMMERCIALE
★ ANNÉES: 1985
★ AUTEUR: Patrick Dublanchet

Page précédente : La page pédagogique d'hebdogiciel 117 - Registres et Adressage
★ AMSTRAD CPC ★ DOWNLOAD ★

Files:
» Amsoft  devpacDATE: 2013-09-03
DL: 585 fois
TYPE: ZIP
SIZE: 47Ko

» DAMS-CPMDATE: 2013-09-03
DL: 185 fois
TYPE: ZIP
SIZE: 18Ko

» damspackDATE: 2013-09-03
DL: 389 fois
TYPE: ZIP
SIZE: 47Ko

» DAMS  6128    FRENCHDATE: 2015-07-09
DL: 50 fois
TYPE: ZIP
SIZE: 39Ko

» DAMS  Converter  v1.1DATE: 2013-09-03
DL: 375 fois
TYPE: ZIP
SIZE: 25Ko

» Dams  notice  FRDATE: 2002-11-15
DL: 366 fois
TYPE: ZIP
SIZE: 18Ko

» DAMS  Overdrive  v1.0DATE: 2013-09-03
DL: 367 fois
TYPE: ZIP
SIZE: 39Ko

» DAMS  OVL    ROMDATE: 2002-12-02
DL: 450 fois
TYPE: ZIP
SIZE: 21Ko

» DAMS  v1.2    (Incl.  Manual)    FRENCHDATE: 2015-05-07
DL: 152 fois
TYPE: ZIP
SIZE: 49Ko

» DAMS    (Keypad  patched  version)DATE: 2013-09-03
DL: 281 fois
TYPE: ZIP
SIZE: 37Ko

» Hisoft  Devpac80  v.2    ENGLISHDATE: 2013-09-03
DL: 479 fois
TYPE: ZIP
SIZE: 447Ko

» Hisoft  Devpac  ROMDATE: 2012-09-19
DL: 430 fois
TYPE: ZIP
SIZE: 12Ko

» Hisoft  Devpac    ENGLISHDATE: 2013-09-03
DL: 444 fois
TYPE: ZIP
SIZE: 85Ko

» RSX-Fast  Arrow    (Include  DEVPAC  SRC)    FRENCHDATE: 2015-07-28
DL: 59 fois
TYPE: ZIP
SIZE: 39Ko

» Zenith  2  DecompacterDATE: 2013-09-03
DL: 358 fois
TYPE: ZIP
SIZE: 26Ko

» ZENSUREN    GERMANDATE: 2013-09-03
DL: 323 fois
TYPE: ZIP
SIZE: 24Ko

» Zen    FRENCHDATE: 2013-09-03
DL: 385 fois
TYPE: ZIP
SIZE: 39Ko

Adverts/Publicités:
» Hisoft-Devpac80DATE: 2014-05-05
DL: 196 fois
TYPE: image
SIZE: 116Ko

» Hisoft-Devpac    ENGLISHDATE: 2015-01-08
DL: 183 fois
TYPE: image
SIZE: 238Ko

» Hisoft-Happy  New  Year  from  Hisoft-Pascal80-C  Plus  Plus-Devpac80-The  Knife-Catalog-Your  Health-Your  Horoscope    ENGLISHDATE: 2014-12-26
DL: 123 fois
TYPE: image
SIZE: 307Ko

» Hisoft-Pascal  4T-Devpac  3DATE: 2015-01-08
DL: 214 fois
TYPE: image
SIZE: 189Ko

» Zenith  Software-Z-PackDATE: 2015-01-08
DL: 138 fois
TYPE: image
SIZE: 61Ko

Covers:
» Amsoft-HiSoft-Devpac    ENGLISHDATE: 2015-01-08
DL: 172 fois
TYPE: image
SIZE: 274Ko

» Hisoft  Devpac    (Release  TAPE)    SPANISHDATE: 2014-05-05
DL: 201 fois
TYPE: image
SIZE: 418Ko
 

Medias/Supports:
» Devpac    (Release  DISC-AMSOFT)    ENGLISHDATE: 2016-06-21
DL: 38 fois
TYPE: image
SIZE: 14Ko
NOTE: Uploaded by hERMOL ; w310*h374

» Devpac    (Release  TAPE-INDESCOMP)    SPANISHDATE: 2017-05-20
DL: 12 fois
TYPE: image
SIZE: 113Ko
NOTE: Uploaded by hERMOL ; w839*h581

» Devpac    (Release  TAPE-SCHNEIDER)    GERMANDATE: 2017-05-20
DL: 9 fois
TYPE: image
SIZE: 97Ko
NOTE: Uploaded by hERMOL ; w640*h774

» Hisoft  Devpac    (Release  AMSOFT-TAPE)    ENGLISHDATE: 2015-11-11
DL: 38 fois
TYPE: image
SIZE: 100Ko
NOTE: Scan by Loic DANEELS ; w594*h739

» ZEN  Assembler    (Release  TAPE)    ENGLISHDATE: 2015-11-11
DL: 48 fois
TYPE: image
SIZE: 95Ko
NOTE: Scan by Loic DANEELS ; w594*h737

Manuels d'utilisation:
» DAMS    (Manuel  d  utilisation-OCR  by  DRILL)    FRENCHDATE: 2014-05-05
DL: 332 fois
TYPE: PDF
SIZE: 330Ko

» HiSoft-Devpac    (Licence  Statement)    ENGLISHDATE: 2014-05-05
DL: 205 fois
TYPE: image
SIZE: 295Ko

» HiSoft  Devpac  Programmers  Manual    ENGLISHDATE: 2014-05-05
DL: 469 fois
TYPE: PDF
SIZE: 2083Ko

Je participe au site:
» Newfile(s) upload/Envoye de fichier(s)
★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding » La page pédagogique d'hebdogiciel 082: Generalite sur les Routines
» Coding » La page pédagogique d'hebdogiciel 123: La Mémoire
» Coding » La page pédagogique d'hebdogiciel 130
» Coding » La page pédagogique d'hebdogiciel 146: Creation d'Une Routine
» Coding » La page pédagogique d'hebdogiciel 127: Registre F
» Coding » La page pédagogique d'hebdogiciel 117 - Registres et Adressage

QUE DIT LA LOI FRANÇAISE:

L'alinéa 8 de l'article L122-5 du Code de la propriété intellectuelle explique que « Lorsque l'œuvre a été divulguée, l'auteur ne peut interdire la reproduction d'une œuvre et sa représentation effectuées à des fins de conservation ou destinées à préserver les conditions de sa consultation à des fins de recherche ou détudes privées par des particuliers, dans les locaux de l'établissement et sur des terminaux dédiés par des bibliothèques accessibles au public, par des musées ou par des services d'archives, sous réserve que ceux-ci ne recherchent aucun avantage économique ou commercial ». Pas de problème donc pour nous!

CPCrulez[Content Management System] v8.75-desktop/c
Page créée en 056 millisecondes et consultée 699 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.