В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

 
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации





Главная страница > Обзоры по типам > Микроконтроллеры > MCS-51 > Команды
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации


Команда ADDC A, <байт-источник>

Эта команда ("сложение с переносом") одновременнос кладывает содержимое байта-источника, флаг переноса и содержимое аккумулятора А, оставляя результат в аккумуляторе. При этом флаги переноса и дополнительного переноса устанавливаются, если есть перенос из бита 7 или бита 3, и сбрасываются в противном случае. При сложении целых чисел без знака флаг переноса указывает на переполнение. Флаг переполнения (OV) устанавливается, если имеется перенос бита 6 и нет переноса из бита 7 или есть перенос из бита 7 и нет - из бита 6, в противном случае OV сбрасывается. При сложении целых чисел со знаком OV указывает на отрицательную величину, полученную при суммировании двух положительных операндов или на положительную сумму от двух отрицательных операндов.

Для этой команды разрешены следующие режимы адресации байта-источника:

  1. регистровый
  2. косвенно-регистровый
  3. прямой
  4. непосредственный

Рассмотрим их.


  1. Ассемблер: ADDC A,Rn ; где n=0-7
    Код:
    0 0 1 1 1 rrr
    , где rrr=000-111
    Время: 1 цикл
    Алгоритм: (A) : = (A) + (C) = (Rn)
    (C) : =X, (AC) : =X, (OV) : =X, где Х=(0 или 1)
    Пример:
               ;(A)=B2H, (R3)=99,
               ;(C)=1
    ADDC A,R3  ;(A)=4CH, (R3)=99
               ;(C)=1, (AC)=0, (OV)=1
    	



  2. Ассемблер: ADDC A,@Ri ; где i=0,1
    Код:
    0 0 1 1 0 1 1 i
    , где i=0,1
    Время: 1 цикл
    Алгоритм: (A) : =(A) + (C) + ((Ri))
    (C) : =X, (AC) : =X, (OV) : = X, где Х=(0 или1)
    Пример:
                ;(A)=D5H, (R0)=3AH, 
                ;(ОЗУ [3A])=1AH, (C)=1
    ADDC A,@R0  ;(A)=F0H, (ОЗУ [3A])=1AH,
                ;(C)=0, (AC)=1, (OV)=0
    	



  3. Ассемблер: ADDC A,<direct>
    Код:
    0 0 1 1 0 1 0 1
    direct address
    Время: 1 цикл
    Алгоритм: (A) : =(A)+(C)+(direct)
    (C) : =X, (AC) : =X, (OV) : =X, где Х=(0 или 1)
    Пример:
               ;(A)=11H, (ОЗУ [80])=DFH, (C)=1
    ADDC A,80H ;(A)=F1H, (C)=0, (AC)=1 (OV)=0
    		   



  4. Ассемблер: ADDC A, <#data>
    Код:
    0 0 1 1 0 1 0 0
    #data
    Время: 1 цикл
    Алгоритм: (A) : = (A)+(C)+ #data
    (C) : =X, (AC) : = X, (OV) : =X, где Х=(0 или 1)
    Пример:
                 ;(A)=55H, (C)=0
    ADDC  A,#55H ;(A)=AAH, (C)=0, (AC)=0, (OV)=1