НПО Системы Безопасности
(499)340-94-73 График работы:
ПН-ПТ: 10:00-19:00
СБ-ВС: выходной

Главная » Периодика » Безопасность

0 ... 11121314151617 ... 159


Система команд микроконтроллеров PIC

8Схх (продолжение)


содержимого регистра держимым регистра reg и битом переноса С I, размещение результата в соответствии

значением указателя Способ доступа определяется указателем а

Команда

adwfc

d а

Функция

If (d == 1)

wreg = wreg + Reg + С else

Reg = wreg + Reg + С If (((wreg > 0) & (Reg > 0))

& ((wreg + Reg + C)

> Ox07F)) OV = 1 else OV = 0

If ((wreg + Reg + C)«. OxOBO) = 0) N = 1 else N = 0

If ((wreg + Reg + C) >

OxOFFO С = 1 else С = 0 If (((wreg «. OxOF) + (Reg 8. OxOF) + C) > OxOF) DC = 1 else DC - 0 If (((wreg + Reg + C) «. OxOFF) == 0x000) Z = 1

else Z = 0

0010 OOda ffff ffff

Логическое И (побитовое) содержимого регистра кгед с константой

andlw Constant

Логическое И содержимого регистра с содержимым регистра "гед и размещение Резупьтата в соответствии со значением l-swa Доступ-в соответствии указателем а

["ДРеходкметке, если ановленбит

Jiyae перехода

wreg = wreg & Constant If ((wreg & Constant)

0x000) Z = 1

else Z = 0

If (((wreg «. Constant)

8, 0x080) 1= 0) N = 1

else N = 0

0000 1011 kkkk kkkk

andwf Reg d a

If (d == 1)

wreg = wreg 8. Reg else

Reg = wreg 8. Reg If ((wreg 8. Reg) -= 0x000)

Z = 1 else Z = 0 If ((wreg i Reg)

8. 0x080) 1= 0) N = 1

else N = 0

0001 01da ffff ffff

be Label

If (C == 1)

PC = PC + 2 + Label

1110 0010 kkkk кккк



Описание

Команда

Функция

Код ~

Стирание заданного бита в региаре Reg Доауп - в соответавии с указателем а

bcf Reg. Bit, а

Reg = Reg 8,(OxOFF " (1 « Bit))

1001 bbba ffff ffff

Переход к метке, если

установлен флаг

отрицательного

результата.

В случае перехода

требуются два цикла

bn Label

If (N == 1)

PC = PC + 2 + Label

1110 0110 kkkk kkkk

Переход к метке, если нет переноса В случае перехода требуются два цикла

bnc Label

If (C == 0)

PC = PC + 2 + Label

1110 0011 kkkk kkkk

Переход к метке, если

сброшен флаг

отрицательного

результата.

В случае перехода

требуются два ци кла

bnn Label

If (N == 0)

PC = PC + 2 * Label

1110 0111 kkkk kkkk

Переход к метке, если сброшен флаг переполнения. В случае перехода требуются два цикла

bnov Label

If (OV == 0)

PC = PC + 2 + Label

1110 0101 kkkk kkkk

Переход к метке, если результат предыдущей операции не равен 0. В случае перехода требуются два цикла

bnz Label

If (Z == 0)

PC = PC + 2 + Label

1110 0001 kkkk кккк

Переход к метке, если переполнение. В случае перехода требуются два цикла

bov Label

If (OV == 1)

PC = PC + 2 + Label

1110 0100 kkkk kkkk

Безусловный переход к метке. Требуются два цикла

bra Label

PC = PC + 2 + Label

1110 Okkk kkkk kkkk

Установка заданного бита в регистре (запись в 1). Доступ-в соответствии с указателем а

bsf Rpq Bit, a

Reg = Regl (1 << Bit)

1000 bbba ffff ffff



1---Описание

Команда

Функция

fjBepKa значения бита регистра и пропуск следующей команды, если бит равен 0. При отсутствии пропуска требуется один командный цикл, а в случае пропуска -два цикла Доступ-в соответствии гуказателем а

btfsc Reg, Bit, а

If ((Reg & (1 « Bit))== 0) PC = Nextlns

1011 bbba ffff ffff

Проверка значения бита регистра и пропуск следующей команды, если бит равен 1, При отсутствии пропуска требуется один командный цикл, а в случае пропуска -два цикла. Доступ-в соответствии с указателем а

btfss Reg, Bit, a

If ((Reg «. (1 « Bit)) 1= 0) PC = Nextlns

1010 bbba ffff ffff

Изменение состояния заданного бита регистра Доступ -в соответствии с указателем а

btg Reg Bit a

Reg = Reg (1 « Bit)

0111 bbba ffff ffff

Переход к метке, если результат предыдущей операции равен 0 В случае перехода требуются два цикла

bz Label

If (Z 1)

PC = PC + 2 + Label

1110 0000 kkkk kkkk

Вызов подпрограммы по 20-разрядному адресу (требуются два цикла). Сохранение Контекста, если s = 1

call Label, s

PUSH (PC) If (S == 1)

PUSH (w. STATUS, BSR) PC = Label

1110 110s kkkk kkkk

1111 kkkk kkkk kkkk

Стирание указанного регистра Доступ -в соответствии £)5«1ателем а

clrf Reg a

Reg = 0 Z = 1

0110 101a ffff ffff

Стирание счетчика сторожевого таймера

clrwdt

WDT = 0

WOT Postscaler = 0 T0 = 1 PD = 1

0000 0000 0000 0100



0 ... 11121314151617 ... 159