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

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

0 ... 891011121314 ... 159


Описание

Каманда

Функция

Логическое И содержимого

регистра с содержимым

регистра wreg

и размещение результата

в соответствии

со значением указателя d

andwf Reg d

If (d - 1)

wreg = wreg & Reg else Reg = wreg S, Reg If ((wreg & Reg) ==

0x000)

Z = 1 else

Z = 0

0000 lOld ffff ffff

Стирание заданного бита в регистре Reg

bcf Reg Bit

Reg = Reg & (OxOFF " (1 « Bit))

1000 Ibbb ffff ffff

Установка заданного бита в регистре (запись в 1)

bsf Reg Bit

Reg = Reg (1 « Bit)

1000 ОЬЬЬ ffff ffff

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

btfsc Reg Bit

If ((Reg & (1 « Bit))

== 0) PC = PC + 1

1001 Ibbb ffff ffff

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

btfss Reg Bit

If ((Reg & (1 « Bit))

= 0) PC = PC + 1

1001 Obbb ffff ffff

Изменение состояния заданного бита регистра

btg Reg Bit

Reg = Reg (1 « Bit)

0011 Ibbb ffff ffff

Вызов подпрограммы (требуются два цикла)

call Label

PUSH ( PC ) PCLATH = PC (15 13) + Label (12 8) PCL = Label (7 0)

111k kkkk kkkk kkkk

Стирание указанного регистра и регистра wreg в зависимости от значения указателя s

clrf Reg s

Reg = 0 If (s " 0) wreg = 0

0010 100s ffff ffff

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

clrwdt

WDT = 0

WDT Postscaler = 0 T0 = 1 P0 = 1

0000 0000 0000 0100

Инвертирование содержимого заданного регистра и размещение результата в соответствии со значением указателя d

comf Reg d

if (d == 0)

Wreg = Reg " OxOFF else

Reg = Reg ~ OxOFF If ((Reg - OxOFF) == 0x000)

Z = 1 else

Z = 0

0001 OOld ffff ffff



Описание

Команда

Функция

Сравнение содержимого региара с содержимым региара wreg В случае равенава - пропуск следукэщей команды (требукэтся два цикла)

cpfseq Reg

If ((Reg - wreg) == 0) PC = PC + 1

0011 0001 ffff ffff

Сравнение содержимого региара с содержимым региара wreg Если первое больше - пропуск следукэщей команды (требукэтся два цикла)

cpfsgt Reg

If ((Reg - wreg) > 0 PC = PC + 1

0011 0010 ffff ffff

Сравнение содержимого региара с содержимым региара wreg Если первое меньше - пропуск следукэщей команды (требуются два цикла)

cpfslt Reg

If ((Reg - wreg) < 0) PC = PC + 1

0011 0000 ffff ffff

Десятичная коррекция и размещение результата в соответавии со значением указателя s

daw Reg s

If ((wreg & OxOF) > 9) If (s == 0) Wreg =

(wreg «, OxOF) + 0x010 else Reg =

(wreg «. OxOF) + 0x010

0010 Ills ffff ffff

Декрем ентирование содержимого регистра и размещение результата в соответствии со значением указателя d

decf Reg d

if (d == 0)

Wreg = Reg - 1 else Reg = Reg - 1 If ((Reg - 1) == 0x000)

Z = 1 else Z = 0 If (((Reg > 0) «,

((Reg - 1) < OxOBO)) OV = 1 else OV = 0

If (((Reg «, OxOOF) - 1) & 0x080) = 0)

DC = 0 else DC = 1 If ((Reg - 1) < 0)

С = 0 else

С = 1

0000 Olid ffff ffff

Декременти рова ние содержимого регистра, размещение результата в соответствии со значением указателя d и пропуск следующей команды, если результат равен нулю, при пропуске требуются два командных 11икла

decfsz Reg d

If (d == 0)

wreg = Reg - 1 else Reg = Reg - 1 If ((Reg - 1) == 0x000) PC = PC + 1

0001 Olid ffff ffff



Описание

Команда

Функция

Декрементирование содержимого регистра, размещение результата в соответствии со значением указателя d и пропуск следующей команды, если результат не равен нулю; при пропуске требуются два командных цикла

dcfsnz Reg, d

if (d == 0)

Wreg = Reg - 1 else Reg = Reg - 1 if ((Reg - 1) != 0x000) PC = PC + 1

0010 Olid ffff ffff

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

goto Label

PCLATH = PC (15:13)

Label (128)

PCL = Label (7:0)

1101 kkkk kkkk kkkk

Инкрементирование содержимого регистра и размещение результата в соответствии со значением указателя d

mcf Reg, d

If (d == 0)

Wreg = Reg + 1 else Reg = Reg + 1 If ((Reg t 1) == 0x000)

Z = 1 else Z = 0 if (((Reg > 0)

«. ((Reg + 1) > 0x07F)) OV = 1 else OV = 0

If (((Reg 4 OMOF) + 1)

«, 0x010) != 0) DC = 1 else DC = 0

If ((Reg + 1) == 0x0100)

С = 1 else

С = 0

0001 OlOd ffff ffff

Инкрементирование содержимого регистра, размещение результата

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

incfsz Reg, d

If (d == 0)

Wreg = Reg + 1 else Reg = Reg + 1 If ((Reg + 1) == 0x000)

PC = PC + 1

0001 Hid ffff ffff

Инкрементирование содержимого регистра, размещение результата в соответствии со значением указателя d и пропуск последующей команды, если результат не равен нулю; при пропуске требуются два командных цикла

infsnz Reg, d

If (d == 0)

Wreg = Reg + 1 else Reg = Reg + 1 If ((Reg * 1) != 0x000)

PC = PC + 1

0010 OlOd ffff ffff



0 ... 891011121314 ... 159