CODINGApprendre pas à pas la programmation en assembleur Z80 ★ Jeu d'instructions du Z80 ★

Opérateurs logiques (AND, OR, XOR, CPL, NEG, SCF, CCF)

Instructions logiques de base


Les opérations logiques de base affectent uniquement le registre A. Il n'existe pas de version 16 bits de ces opérations.

AND
Effectuer un ET logique sur le registre A.

AND im8
AND reg8
AND (HL)
AND (IX+d)
AND (IY+d)


Effet sur les flags :

  • C et N sont effacés
  • flag H positionné à 1
  • P/V est la parité de bits du résultat
  • Z=1 si le résultat est nul
  • S=1 si le résultat est négatif
table de vérité du AND

0 AND 0 = 0
0 AND 1 = 0
1 AND 0 = 0
1 AND 1 = 1


L'utilisation pratique du AND est le masquage, ne conserver que certains bits, en enlever d'autres. Le AND permet de réaliser facilement des modulos sur toutes les puissances de deux moins un.

OR
Effectuer un OU logique sur le registre A.

OR im8
OR reg8
OR (HL)
OR (IX+d)
OR (IY+d)


Effet sur les flags :

  • C, H et N sont effacés
  • P/V est la parité de bits du résultat
  • Z=1 si le résultat est nul
  • S=1 si le résultat est négatif
table de vérité du OR

0 OR 0 = 0
0 OR 1 = 1
1 OR 0 = 1
1 OR 1 = 1


L'utilisation pratique du OR est la fusion de deux octets. On s'en sert aussi pour tester le zéro du registre A sans le modifier.

XOR
Effectuer un OU exclusif logique sur le registre A.

XOR im8
XOR reg8
XOR (HL)
XOR (IX+d)
XOR (IY+d)


Effet sur les flags :

  • C, H et N sont effacés
  • P/V est la parité de bits du résultat
  • Z=1 si le résultat est nul
  • S=1 si le résultat est négatif
table de vérité du XOR

0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0


L'utilisation pratique du XOR est le chiffrement car son utilisation deux fois de suite avec la même valeur permet de retrouver la valeur initiale de A. Certains jeux ont utilisé le XOR pour afficher des sprites à l'écran, afficher à nouveau le sprite au même endroit effaçait le sprite. Seul problème : C'est moche.

CPL
Effectue le complément à un du registre A (inverse tous les bits).

NEG
Le registre A devient A soustrait de zéro (inverse le signe mathématique).

SCF
Cette instruction met à 1 le flag C et remet à zéro les flags H et N. Les autres flags ne sont pas modifiés.

CCF
Cette instruction inverse les flags C et H. Le flag N est mis à zéro. Les autres flags ne sont pas modifiés.

★ ANNÉE: 2025
★ AUTEUR: Roudoudou

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.732-desktop/c
Page créée en 651 millisecondes et consultée 8 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.