Курс лекций - Микропроцессоры


             

с 4 по 7 содержат число


Если старшие биты аккумулятора (с 4 по 7) содержат число большее 9 (1010xxxx :1111xxxx) или флаг переноса C содержит '1', то к аккумулятору прибавляется число 60h для того, чтобы получить правильную двоично-десятичную цифру в старшей тетраде.
Если в результате операции DA A возникнет перенос, то флаг переноса C будет установлен в 1. Единичный флаг переноса после операции DA A означает, что результат суммирования больше 100 и этим можно воспользоваться для суммирования многоразрядных двоично-десятичных чисел. Команда десятичной коррекции не воздействует на флаг переполнения OV.
Примечание: команда DA A не может преобразовать двоичное число из аккумулятора в двоично-десятичный вид или правильно скорректировать двоично-десятичное вычитание.
Пример: DA A
Количество байт: 1
Количество циклов: 1
Действие команды: (PC) = (PC) + 1
IF [[(A3-0) > 9] or [(AC) = 1]] THEN
(A3-0) = (A3-0) + 6
AND
IF [[(A7-4) > 9] or [(C) = 1]] THEN
(A7-4) = (A7-4) + 6
Машинный код:
1 1 0 1 0 1 0 0
DEC <байт> - производит вычитание 1 из указанного операнда.
Описание: ячейка памяти адрес, которой указан во втором байте команды уменьшается на 1. Если первоначально в ячейке было записано значение 00h, то в нее заносится значение 0FFh. Команда не воздействует на флаги.
Примечание: при выполнении команды DEC над содержимым внешнего порта используется значение из внутреннего регистра, а не данные, присутствующие на выводах микросхемы!
Для команды DEC разрешены следующие режимы адресации байта - источника:
  • .
Пример: DEC A
Количество байт: 1
Количество циклов: 1
Действие команды: (PC) = (PC) + 1
(A) = (A) - 1
Машинный код:
0 0 0 1 0 1 0 0
  • ;
Пример: DEC R3
Количество байт: 1
Количество циклов: 1
Действие команды: (PC) = (PC) + 1
(Rn) = (Rn) - 1, n=0,1,2,3,4,5,6,7
Машинный код:
0 0 0 1 1 r r r
  • ;
Пример: DEC @R0
Количество байт: 1
Количество циклов: 1
Действие команды: (PC) = (PC) + 1
((Ri)) = ((Ri)) - 1, i=0,1
Машинный код:

Содержание  Назад  Вперед