« Programmation Assembleur Z80 » : différence entre les versions

Contenu supprimé Contenu ajouté
m →‎Opérations d'entrée/sortie : ajout de out (n),A
→‎Opérations logiques de base : ajout de CPL et NEG
Ligne 141 :
=== Opérations logiques de base ===
Il est possible de modifier la valeur d'un registre avec des opérations. La plupart de ces opérations, cependant, affectent seulement le registre A.
Les instructions a utiliser sont ADC, ADD, AND, DEC, INCCPL, NEG, OR, RL, RR, SBC, SUB, et XOR.
LesCes instructions AND, OR, et XOR ne peuvent être appliquées qu'au registre A. leur syntaxe est:
 
AND registre|valeur|mémoire
AND A,reg8
OR registre|valeur|mémoire
AND A,im8
XOR registre|valeur|mémoire
AND A,(reg16) ; sauf BC et DE
OR A,reg8
OR A,im8
OR A,(reg16) ; sauf BC et DE
XOR A,reg8
XOR A,im8
XOR A,(reg16) ; sauf BC et DE
 
CPL ; complément à deux du registre A (inverse tous les bits)
NEG ; A devient A soustrait de zéro (inverse le signe mathématique)
 
Le registre est un registre 8 bits parmi les suivants: A,B,C,D,E,H,L,XL,XH,YL,YH<br>
La valeur est une valeur immédiate 8 bits: Entre -128 et 255<br>
La mémoire est une valeur indexée: (HL), (IX+n) ou (IY+n) avec n valeur immédiate 8 bits signée de -128 à 127<br><br>
 
Ce sont des opérateurs logiques binaires, AND réalise un ET logique de la valeur donnée avec le registre A dans lequel il va stocker le résultat. OR effectue de la même façon un OU logique inclusif. et XOR un OU exclusif. Par exemple: