DAA - Выполнить десятичную коррекцию аккумулятора (Decimal Adjust Accumulator)
| Операция |
(A)10 |
| Описание |
Корректируется содержимое аккумулятора и состояние бита переноса регистра кодов признаков (CCR) так, чтобы они представляли собой правильную двоично-десятичную сумму и точное указание на перенос. На операцию воздействует состояние бита полупереноса регистра кодов признаков. (Подробности функционирования команды DAA приведены в таблице). |
| Коды признаков и Булевы выражения |
|
| V: |
U Неопределенно |
| N: |
R7 Устанавливается, если MSB результата в состоянии 1, в ином случае очищается |
| Z: |
R7#&R6#&R5#&R4#&R3#&R2#&R1#&R0# Устанавливается, если результат равен $00, в ином случае очищается. |
| C: |
(Смотри таблицу Функционирование команды DAA) |
Исходные формы, режимы адресации, машинные коды и количество циклов
| Исходные формы |
Режим адресации |
Машинные коды |
Количество циклов HC08 |
| Код операции |
Операнд(ы) |
| DAA |
INH |
72 |
|
2 |
В таблице Функционирование команды DAA показаны операции DAA при всех возможных комбинациях входных операндов. В столбцах с 1 по 4 представлены результаты команд ADC или ADD над двоично-десятичными операндами. Корректирующий фактор, представленный в столбце 5, добавляется к аккумулятору с тем, чтобы восстановить результат операции над двумя двоично-десятичными операндами до правильного двоично-десятичного значения и сбоса или установки бита C.
Функционирование команды DAA
| 1 |
2 |
3 |
4 |
5 |
6 |
| Первоначальное состояние бита C ) |
Состояние A (биты 7:4 |
Первоначальное состояние бита H |
Состояние A (биты 3:0) |
Корректирующий фактор |
Скорректированное значение бита C |
| 0 |
0 - 9 |
0 |
0 - 9 |
00 |
0 |
| 0 |
0 - 8 |
0 |
A - F |
06 |
0 |
| 0 |
0 - 9 |
1 |
0 - 3 |
06 |
0 |
| 0 |
A - F |
0 |
0 - 9 |
60 |
1 |
| 0 |
9 - F |
0 |
A - F |
66 |
1 |
| 0 |
A - F |
1 |
0 - 3 |
66 |
1 |
| 1 |
0 - 2 |
0 |
0 - 9 |
60 |
1 |
| 1 |
0 - 2 |
0 |
A - F |
66 |
1 |
| 1 |
0 - 2 |
1 |
0 - 3 |
66 |
1 |
|