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

 
Пересюхтюмя


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





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





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


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





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


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

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

При вычитании целых чисел со знаком (OV) указывает на отрицательное числоЮ которое получается при вычитании отрицательной величины из положительной, или положительное число, которое получается при вычитании положительного числа из отрицательного.

Операнд источника допускает четыре режима адресации:

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

  1. Ассемблер: SUBB A, Rn; где n=0-7
    Код:
    1 0 0 1 1 rrr
    где r=000-111
    Время: 1 цикл
    Алгоритм: (A) : = (A)-(C)-(Rn);
    (C):=X, (AC):=X, (OV):=X, где X=(0 или 1)
    Пример:
                 ;(A)=C9H,  (R2)=54H, (C)=1
    SUBB  A,R2   ;(A)=74H,  (R2)=54H, (C)=0
                 ;(AC)=0, (OV)=1
    



  2. Ассемблер: SUBB A, <direct>
    Код:
    1 0 0 1 0 1 0 1
    direct address
    Время: 1 цикл
    Алгоритм: (A) : =(A)-(C)-(direct);
    (C):=X, (AC):=X, (OV):=X, где Х=(0 или 1)
    Пример:
              ;(A)=97H, (B)=25H, (C)=9
    SUBB  A,B ;(A)=72H, (B)=25H, (C)=0,
              ;(AC)-0, (OV)=1
    



  3. Ассемблер: SUBB A@Ri; где i=0,1
    Код:
    1 0 0 1 0 1 1 i
    Время: 1 цикл
    Алгоритм: (A) : = (A)-(C)-((Ri));
    (C):=X, (AC):=X, (OV):=X, где Х=(0 или 1)
    Пример:
                 ;(A)=49H,  (C)=1, (R0)=33H,
                 ;(ОЗУ[33])=68H
    SUBB  A,@R0  ;(A)=E0H,  (C)=1, (AC)=0, (OV)=0
    



  4. Ассемблер: SUBB A,#data
    Код:
    1 0 0 1 0 1 0 0
    #data8
    Время: 1 цикл
    Алгоритм: (A):=(A)-(C)-(#data8);
    (C):=X, (AC):=X, (OV):=X, где Х=(0 или 1)
    Пример:
                   ;(A)=0BEH, (C)=0
    SUBB  A,#3FH   ;(A)=7FH, (C)-0, (AC)=1, (OV)=1