Instructions de manipulation de bits
On peut tester, effacer ou positionner chaque bit individuellement d'un registre ou d'un octet en mémoire avec ces opérations.
SET
L'instruction SET sert à positionner à 1 n'importe quel bit d'un registre ou d'un octet en mémoire.
SET n,reg8 ; positionner un bit (sauf XH,XL,YH,YL,F,I)
SET n,(HL) ; positionner un bit de l'octet situé à l'adresse HL
SET n,(IX+d) ; positionner un bit de l'octet situé à l'adresse IX+d
SET n,(IY+d) ; positionner un bit de l'octet situé à l'adresse IY+d
|
- n est le numéro de bit à traiter, valeur de 0 à 7 avec 0 pour le bit le moins significatif.
- L'instruction ne modifie pas les flags
RES
L'instruction RES (abréviation de RESet) sert à effacer n'importe quel bit d'un registre ou d'un octet en mémoire.
RES n,reg8 ; effacer un bit (sauf XH,XL,YH,YL,F,I)
RES n,(HL) ; effacer un bit de l'octet situé à l'adresse HL
RES n,(IX+d) ; effacer un bit de l'octet situé à l'adresse IX+d
RES n,(IY+d) ; effacer un bit de l'octet situé à l'adresse IY+d
|
- n est le numéro de bit à traiter, valeur de 0 à 7 avec 0 pour le bit le moins significatif.
- L'instruction ne modifie pas les flags
BIT
L'instruction BIT sert à tester n'importe quel bit d'un registre ou d'un octet en mémoire. La valeur inverse du bit est copiée dans le flag Z, qui peut ensuite être utilisé dans une instruction conditionnelle.
BIT n,reg8 ; tester un bit (sauf XH,XL,YH,YL,F,I)
BIT n,(HL) ; tester un bit de l'octet situé à l'adresse HL
BIT n,(IX+d) ; tester un bit de l'octet situé à l'adresse IX+d
BIT n,(IY+d) ; tester un bit de l'octet situé à l'adresse IY+d
|
- n est le numéro de bit à traiter, valeur de 0 à 7 avec 0 pour le bit le moins significatif.
- Si le bit testé est à zéro, alors le flag Z=1
- Si le bit testé est à un, alors le flag Z=0
super instruction avec copie du résultat dans un autre registre
Les instructions RES et SET possèdent un mode d'exécution qui copie le résultat dans un autre registre. La syntaxe a alors besoin de deux opérandes. Seuls les assembleurs Rasm et Sjasm les supportent.
Les combinaisons possibles de registres sont :
RES n,(IX+d),A : SET n,(IX+d),A : RES n,(IY+d),A : SET n,(IY+d),A
RES n,(IX+d),B : SET n,(IX+d),B : RES n,(IY+d),B : SET n,(IY+d),B
RES n,(IX+d),C : SET n,(IX+d),C : RES n,(IY+d),C : SET n,(IY+d),C
RES n,(IX+d),D : SET n,(IX+d),D : RES n,(IY+d),D : SET n,(IY+d),D
RES n,(IX+d),E : SET n,(IX+d),E : RES n,(IY+d),E : SET n,(IY+d),E
RES n,(IX+d),H : SET n,(IX+d),H : RES n,(IY+d),H : SET n,(IY+d),H
RES n,(IX+d),L : SET n,(IX+d),L : RES n,(IY+d),L : SET n,(IY+d),L
|
CPCrulez[Content Management System] v8.732-desktop/c Page créée en 207 millisecondes et consultée 7 foisL'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. |
|