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: 614 fois
TYPE: ZIP
SIZE: 47Ko
NOTE: 40 Cyls
.HFE: OUI

» DAMS-CPMDATE: 2013-09-03
DL: 209 fois
TYPE: ZIP
SIZE: 18Ko
NOTE: 40 Cyls
.HFE: OUI

» damspackDATE: 2013-09-03
DL: 411 fois
TYPE: ZIP
SIZE: 47Ko
NOTE: 40 Cyls
.HFE: OUI

» DAMS  6128    FRENCHDATE: 2015-07-09
DL: 69 fois
TYPE: ZIP
SIZE: 39Ko
NOTE: 40 Cyls
.HFE: OUI

» DAMS  Converter  v1.1DATE: 2013-09-03
DL: 401 fois
TYPE: ZIP
SIZE: 25Ko
NOTE: 42 Cyls
.HFE: OUI

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

» DAMS  Overdrive  v1.0DATE: 2013-09-03
DL: 385 fois
TYPE: ZIP
SIZE: 39Ko
NOTE: 42 Cyls
.HFE: OUI

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

» DAMS  v1.2    (Incl.  Manual)    FRENCHDATE: 2015-05-07
DL: 188 fois
TYPE: ZIP
SIZE: 49Ko
NOTE: 40 Cyls
.HFE: OUI

» DAMS    (Keypad  patched  version)DATE: 2013-09-03
DL: 314 fois
TYPE: ZIP
SIZE: 37Ko
NOTE: 40 Cyls
.HFE: OUI

» Hisoft  Devpac80  v.2    ENGLISHDATE: 2013-09-03
DL: 510 fois
TYPE: ZIP
SIZE: 447Ko
NOTE: 41 Cyls
.HFE: OUI

» Hisoft  Devpac  ROMDATE: 2012-09-19
DL: 451 fois
TYPE: ZIP
SIZE: 12Ko
NOTE:
.HFE: NON

» Hisoft  Devpac    ENGLISHDATE: 2013-09-03
DL: 476 fois
TYPE: ZIP
SIZE: 85Ko
NOTE: 43 Cyls
.HFE: OUI

» RSX-Fast  Arrow    (Include  DEVPAC  SRC)    FRENCHDATE: 2015-07-28
DL: 75 fois
TYPE: ZIP
SIZE: 39Ko
NOTE: 40 Cyls
.HFE: OUI

» Zenith  2  DecompacterDATE: 2013-09-03
DL: 432 fois
TYPE: ZIP
SIZE: 26Ko
NOTE: 40 Cyls
.HFE: OUI

» ZENSUREN    GERMANDATE: 2013-09-03
DL: 340 fois
TYPE: ZIP
SIZE: 24Ko
NOTE: 40 Cyls
.HFE: OUI

» Zen    FRENCHDATE: 2013-09-03
DL: 483 fois
TYPE: ZIP
SIZE: 39Ko
NOTE: 40 Cyls
.HFE: OUI

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

» Hisoft-Devpac80  v2-Aztec  C    ENGLISHDATE: 2018-01-19
DL: 4 fois
TYPE: image
SIZE: 232Ko
NOTE: Uploaded by hERMOL ; w1182*h873

» Hisoft-Devpac    ENGLISHDATE: 2015-01-08
DL: 247 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: 218 fois
TYPE: image
SIZE: 307Ko

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

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

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

  » Ensamblador  Desensamblador  Devpac    (Release  TAPE-INDESCOMP)    SPANISHDATE: 2018-02-03
DL: 2 fois
TYPE: image
SIZE: 396Ko
NOTE: Scan by Abraxas ; w2246*h1406

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

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

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

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

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

» ZEN  Assembler    (Release  TAPE)    ENGLISHDATE: 2015-11-11
DL: 75 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: 420 fois
TYPE: PDF
SIZE: 330Ko

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

» HiSoft  Devpac  Programmers  Manual    ENGLISHDATE: 2014-05-05
DL: 496 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 139: La Pile
» Coding » La page pédagogique d'hebdogiciel 119: Registres et Adressage
» Coding » La page pédagogique d'hebdogiciel 127: La Memoire
» Coding » La page pédagogique d'hebdogiciel 127: Registre F
» Coding » La page pédagogique d'hebdogiciel 085
» Coding » La page pédagogique d'hebdogiciel 115 : Formation à l'assembleur - Logique ou Arithmetiques

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 070 millisecondes et consultée 794 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.