Revenir au plan du site


Traitement des nombres en base 10 stockés au format BCD


DAA
Cette instruction sert à ajuster la valeur d'un octet quand on s'en sert comme si il contenait deux chiffres décimaux. Les 4 bits du haut et les 4 bits du bas sont supposés contenir chacun une valeur de 0 à 9. Ainsi, quand on réalise des additions ou des soustractions, on appelle l'instruction DAA pour corriger les retenues à effectuer sur le registre.

Le fonctionnement de l'instruction est le suivant :
Quelques exemples d'exécution de l'instruction DAA :
LD A,valeur ADD A,valeur Résultat de l'addition Valeur de A après DAA Flag C
#55 #11 #66 #66 (55+11=66) 0
#59 #12 #6B #71 (59+12=71) 0
#90 #10 #A0 #00 (90+10=100) 1
#99 #01 #9A #00 (99+1=100) 1

La retenue (flag C) est mise dès lors qu'on dépasse la valeur 99. Il faut la reporter sur l'octet BCD suivant.