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

 
Пересюхтюмя


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





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





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


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





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


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

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

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

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

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


  1. Ассемблер: ADD A,Rn ; где n=0-7
    Код:
    0 0 1 0 1 rrr
    , где rrr=000-111
    Время: 1 цикл
    Алгоритм: (A) : = (A) + (Rn), где n=0-7
    C : = X, OV : =X, AC : =X, где Х=(0 или 1)
    Пример:
               ;(A)=C3H, (R6)=AAH
    ADD  A,R6  ;(A)=6DH, (R6)=AAH
               ;(AC)=0, (C)=1, (OV)=1
    	



  2. Ассемблер: ADD A,@Ri ; где i=0,1
    Код:
    0 0 1 0 0 1 1 i
    , где i=0,1
    Время: 1 цикл
    Алгоритм: (A) : +(A) = ((Ri)), где i=0,1
    C : = X, OV : = X, AC : = X, где Х=(0 или1)
    Пример:
                ;(A)=95H, (R1)=31H, (ОЗУ [31])=4CH
    ADD  A,@R1  ;(A)=E1H, (ОЗУ [31])=4CH,
                ;(C)=0, (AC)=1, (OV)=0
    	



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



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