« Programmation Assembleur Z80/Jeu d instructions » : différence entre les versions

Contenu supprimé Contenu ajouté
→‎comparaison 16 bits : CPI,CPIR,CPD,CPDR
Ligne 124 :
* Si HL<DE alors C=1
* Si HL>=DE alors C=0
 
==== CPI ====
Cette instruction est une instruction de comparaison groupée. L'instruction est équivalente au pseudo-code suivant:
CP (HL) ; compare le registre A avec la valeur à l'adresse HL
INC HL ; incrémente HL
DEC BC ; décrémente BC
Si BC=0 après exécution de l'instruction, alors le flag P/V est mis à 1.
==== CPIR ====
Cette instruction est une répétition de l'instruction CPI tant que BC est plus grand que zéro ou que le registre A est différente de la valeur pointée par HL. Par exemple, pour trouver la première occurence de A en mémoire, on peut écrire.
LD A,#55 ; chercher la valeur #55
LD HL,montableau
LD BC,1024 ; taille maximum du tableau
CPIR
DEC HL ; pour avoir l'adresse de l'occurence, il faut décrémenter HL car il est incrémenté après chaque comparaison.
* Après exécution le flag P/V est à 1 si on n'a trouvé aucune valeur OU que la valeur est la dernière du tableau. Il faut donc la tester!
==== CPD ====
Cette instruction est le pendant de l'instruction CPI mais avec une décrémentation de HL.
==== CPDR ====
Cette instruction est le pendant de l'instruction CPIR mais avec une décrémentation de HL.
 
=== Instructions de saut non conditionnel ===