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

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

0 ... 13141516171819 ... 159


Описание

Команда

Функция

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

wreg

lOrlw Constant

wreg = wreg I Constant if ((wreg 1 Constant)

== 0x000) Z = 1

else Z = 0

If ((wreg 1 Constant)

«. OxOBO) 1= 0) N = 1

else N = 0

0000 1001 kkkk kkkk

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

lorwf Reg 6 a

If (d == 1)

wreg = wreg Reg else

Reg = wreg Reg If ((wreg 1 Reg == 0x000)

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

«. 0x080) 1 = 0) N = 1 else N = 0

1110 1110 OOff kkkk 0001 OOda ffff ffff

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

Ifsr f Const

FSR(f) = Const

1110 1110 OOff kkkk

1111 0000 kkkk kkkk

Пересылка

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

movf Reg d a

If (d == 0) wreg = Reg

(Reg == 0) Z = 1

else Z = 0

If ((Reg «. 0x080) = 0)

N = 1 else N = 0

0101 OOda ffff ffff

Пересылка содержимого регистра источника в регистр приемник Адресация регистров 12-разрядными адвесами

movff Regs Regd

Regd = Regs

1100 fffs fffs fffs 1111 fffd fffd fffd

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

movlb Constant

BSR(3 0) = Constant

0000 0001 kkkk kkkk

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

movlw Constant

wreg = Constant

0000 1110 kkkk kkkk



Описание

Команда

Функция

Пересылка в регистр содержимого регистра wreg Доступ - в соответствии с указателем а

movwf Reg a

Reg = wreg

0110 111a ffff ffff

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

mullw Constant

PRODH PROGL = Constant • wreg

0000 1101 kkkk kkkk

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

mulwf Reg a

PRODH PROGL = Reg • wreg

0000 001a ffff fff

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

negw Reg a

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

If ((-Reg & 0x080) i= 0)

N = 1 else N = 0 If (-Reg > OxOFF)

С = 1 else С = 0

If ((-Reg «. OxOF) > OxOF)

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

Z = 1 else Z = 0

0110 110a ffff fff

«Пустая» операция (два кода)

0000 0000 0000 0000 1111 1111 1111 in

Выбор из стека

POP ( )

0000 0000 0000 0110

Занесение в стек

push

PUSH (PC + 2)

0000 0000 0000 0101

Вызов подпрограммы 11 разрядным адресом

rcall Label

PUSH ( PC )

PC = PC + 2 + Label

1101 Ikkk kkkk kkkk

Перезапуск микроконтроллера

reset

MCLR = 0 MCLR = 1

0000 0000 1111 1111

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

восстанавливается контекст (содержимое регистров wreg, STATUS, BSR)

retfie s

PC = POP ( )

GIE = 0

If (s == 1)

wreg = POP ( ) STATUS = POP ( ) BSR = POP ( )

0000 0000 0001 000s

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

retlw Constant

wreg = Constant PC = POP ( )

0000 1100 kkkk kkkk

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

восстанавливается контекст (содержимое регистров

wreg, STATUS, BSR)

return s

PC = POP ( )

If (s == 1)

wreg = POP ( ) STATUS = POP ( ) BSR = POP ( )

0000 0000 0001 001s



г Описание

Команда

Функция

ц;;;;;;йческий сдвиг (через бит переноса) содержимого региара влево и сохранение результата в соответствии со значением указателя 0 Доступ - в сйответавии с указателем а

rlcf Reg d а

If (d == 0)

wreg (7 1) = Reg (6 0)

wreg (0) = С

С = Rog (7) else

Reg (7 1) = Reg (6 0)

Reg (0) = С

С = Reg (7) If (Reg (6) = 0) N = 1 else N = 0

0011 Olda ffff ffff

"циклический сдвиг содержимого региара влево и сохранение результата в соответавии со значением указателя 0 Доступ - в соответствии с указателем а

rlncf Reg d a

If (d == 0)

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

else

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

If (Reg (6) 1= 0) N = 1

else N = 0

0100 Olda ffff ffff

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

rrcf Reg d a

If (d == 0)

wreg (6 0) = Reg (7 1)

wreg (7) = С

С = Reg (0) else

Reg (6 0) = Reg (7 1)

Reg (7) - С

С - Reg (0) If (Reg (0) = 0)

N = 1 else N - 0

0011 OOda ffff ffff

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

rrcnf Reg d a

If (d == 0)

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

else

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

If (Reg (0) = 0) N = 1

else N = 0

0100 OOda ffff ffff

Уаановка всех разрядов Реплара в 1 Сохранение в зависимости от значения указателя s Доступ - в соответствии £Шза1елем а

setf Reg s a

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

0110 100a ffff ffff

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

sleep

WOT = 0

WOT Postscaler = 0 T0 = 1 P0 = 0

0000 0000 0000 ООН



0 ... 13141516171819 ... 159