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

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

0 ... 9101112131415 ... 159


описание

команда

функция

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

lorlw Constant

wreg = wreg 1 Constant if ((wreg 1 Constant) == 0x000)

Z = 1 else

Z = 0

1011 0011 kkkk kkkk

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

lorwf Reg, d

if (d == 1)

Wreg = wreg Reg else Reg = wreg Reg If ((wreg 1 Reg) == 0x000) Z = 1 else Z = 0

ООО lOOd ffff ffff

«Длинный» переход (два никла)

Icall Label

PUSH ( PC )

PCL = Label (7:0)

1011 0111 kkkk kkkk

Пересылка содержимого региара в регистр из первичной облааи (00- IF)

movfp Reg, p

P = Reg

Ollp pppp ffff ffff

Загрузка конаанты в младший полубайт региара выбора банка (BSR)

movlb Constant

BSR (3:0) = Constant

1011 1000 0000 kkkk

Зафузка константы ваарший полубайт региара выбора банка (BSR)

movlr Constant

BSR (7:4) = Constant

1011 1010 kkkk 0000

Зафузка конаанты в региар wreg

movlw Constant

Wreg = Constant

1011 0000 kkkk kkkk

Пересылка содержимого решара первичной облааи (00 - IF) в заданный регистр

movpf p, Reg

Reg = p if (p == 0)

Z = 1 else Z = 0

OlOp pppp ffff ffff

Пересылка содержимого •тед в заданный регистр

movwf Reg

Reg = wreg

0000 0001 ffff ffff

Умножение содержимого регистра wreg на константу

mullw Constant

PRODH:PROGL = Constant • wreg

1011 1100 kkkk kkkk

Умножение содержимого регистра на содержимое регистра wreg

mullwf Reg

PRODH:PROGL = Reg • wreg

0011 0100 ffff ffff



Описание

Команда

Функция

Код I

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

negw Reg s

If (s == 0)

Reg = -ytreg wreg = -wreg If ((wreg < 0)

& (-wreg < 0x080)) OV = 1 else OV = 0 If (-wreg > OxOFF) С = 1

else С = 0 If ((-wreg «, OxOF) > OxOF)

DC = 1 else DC = 0 If (-wreg == 0x000)

Z = 1 else

Z = 0

0010 110s ffff fft*

«Пуаая» операция

0000 0000 0000 0000

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

retfie

PC = POP ( ) GLTIND = 0

0000 0000 0000 0101

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

retlw Constant

Wreg = Constant PC = POP ( )

1011 0110 kkkk kkkk

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

return

PC = POP ( )

0000 0000 0000 0010

Циклический сдвиг (через бит переноса) содержимого региара влево и сохранение результата в соответавии со значением указателя d

rlcf Reg. d

If (d 0)

Wreg (7 1)= Reg (6 0)

Wreg (0) = С else

Reg (7 1) = Reg (6 0) Reg (0) = С С = Reg (7)

0001 lOld ffff fff

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

rlcnf Reg d

If (d == 0) Wreg (7 1) = Reg (6 0) wreg (0) = Reg (7)

else

Reg (7 1) = Reg (6 0) Req (0) = Req (7)

0010 OOld ffff ffff

Циклический сдвиг (через бит переноса) содержимого региара вправо и сохранение результата в соответствии со значением указателя d

rrcf Reg, d

If (d == 0)

Wreg (6 0) = Reg (7 1)

Wreg (7) = С

С = Reg (0) else

Reg (6 0) = Reg (7 1) Reg (7) = С С = Req (0)

0001 lOOd ffff fftf



Описание

Команда

функция

Циклический сдвиг содержимого регистра вправо и сохранение результата в соответствии со значением указателя d

rrcnf Reg d

If (d == 0)

Wreg (6 0) = Peg (7 1) Wreg (7) - Reg (01

else

Reg (6 0) = Reg (7 1) Req (7) = Reg (0)

0010 OOOd ffff ffff

Уаановка всех разрядов региара в 1 Сохранение результата в зависимости от значения указателя s

setf reg s

Reg = OxOFF If (s 0) Wreg = OxOFF

0010 101s ffff ffff

Переход в режим пониженной мощности SLEEP(на неопределенное время)

sleep

WDT = О

WDT Postscaler = О ГО = 1 Р0 - О

Мик;оконтроллер переводится с режим ожидания

0000 0000 0000 0011

Вычитание содержимого реплстра wreg из константы

sublw Constant

Wreg = Constant - wreg If (((wreg < 0) & (Consant < 0) i ((Constant - wreg) < OxOBO)) OV = 1 else OV = 0

If ((Constant - wreg) > OxOFF) С = 1 else С = 0

If (((Constant & OxOF) -Wreg «. OxOF)) > OxOF) DC = 1

else DC = 0

If (((Constant - wreg) «, OxOFF) == 0x000)

= 1 else Z = 0

1011 0010 kkkk kkkk



0 ... 9101112131415 ... 159