la instrucción DAA (ajuste decimal) se utiliza para sumar dos bytes en formato BCD, despues de una suma realizada con las instrucciones ADD
la instrucción DAA ajusta el resultado de la suma (para lo cual utiliza la información de los bits C y H del registro de condiciones, que son el acarreo del 8vo y 4to bits respectivamente, para corregir la suma e impedir los valores hexadecimales incorrectos (A-F).
Por ejemplo: si sumamos $01 + $09, obtenemos $0A, CC.C=0 y CC.H=0 (que no es un número BCD válido); la instrucción DAA se encarga de sumarle $06 para convertirlo en el valor correcto $10 (01+09=10).
Otro ejemplo: si sumamos $08 + $08, obtenemos $10, CC.C=0 y CC.H=1 (que es un número BCD válido, pero la suma es incorrecta porque CC.H=1), la instrucción DAA se encarga de sumarle $06 para convertirlo en el valor= $16 (08+08=16). Lo mismo vale para las decenas, salvo que aquí se utiliza el acarreo normal (CC.C) en lugar del medio acarreo (CC.H) y se suma $60.
Si CC.H y CC.C son 0 y los dígitos obtenidos son BCD, no es necesario sumar nada para ajustar el resultado (por ejemplo: $23+$11=$34).
espero te sirva, saludos