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 |