Вот получил один ответ правда с припиской "КАЖЕТСЯ ТАК". Верно ли реализована команда в ЭТОМ примере?...
========================
Данная команда преобразует двоичное число в аккумуляторе в его двоично-десятичное представление.
1. Если младшие 4 бита аккумулятора представляют число, которое больше 9, или если триггер вспомогательного переноса регистра признаков AC=1, то содержимое аккумулятора увеличивается на 6. В противном случае изменение не происходит.
2. Если старшие 4 бита аккумулятора представляют число, которое больше 9, или если триггер переноса (заема) регистра признаков CY=1, то старшие 4 бита аккумулятора увеличиваются на 6. В противном случае изменение не происходит.
Код:
Procedure DAA;
Var
tmp : Word;
Begin
tmp:=RgA And $FF;
If (((RgA And $F)>9) Or FlagAc) Then
Begin
Inc(tmp,6);
SetFlagAc(True);
End;
If (((tmp And $F0)>$90) Or FlagC) Then
Inc(tmp,$60);
RgA:=Lo(tmp);
SetFlagC((tmp And $100)<>0);
SetFlagZ(RgA=0);
end;
Кажется так.
========================