Просто хотел добавить, что флаг N - это то, что они имеют в виду, когда говорят о предыдущей операции. Дополнения устанавливают N = 0, вычитания устанавливают N = 1. Таким образом, содержимое регистра A и флаги C, H и N определяют результат.
Инструкция предназначена для поддержки арифметики BCD, но имеет другое применение. Рассмотрим этот код:
and 15
add a,90h
daa
adc a,40h
daa
Конец преобразования младших 4 битов регистра A в значения ASCII '0', '1', ... '9', 'A', 'B', ..., 'F'. Другими словами, двоичный в шестнадцатеричный преобразователь.