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

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

0 ... 567891011 ... 159

Описание

Команда

Функция

Сложение содержимого региара с содержимым регистра w и размещение результата в соответствии с указателем d

addwf Reg, d

If (d 1)

Reg - Reg + w else

w = Reg + w

endif

С = (Reg + w) > OxOFF Z = ((Reg + w) 8, OxOFF) == 0 DC = ((Reg 8, OxOF) + w 8. OxOF)) > OxOF

0001 lldf ffff

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

andlw к

w = w 8. к

Z = (w 8, к) == 0

1110 kkkk kkkk

Логическое И содержимого регистра с содержимым регистра w и сохранение результата в соответствии с указателем 6

andwf Reg, d

If (d == 1)

Reg = Reg 8. w else

w = Reg i w

endif

Z = (Reg 8, w) == 0

0001 Oldf ffff

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

bcf Reg, bit

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

0100 bbbf ffff

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

bsf Reg, bit

Reg = Reg (1 « Bit)

0101 bbbf ffff

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

btfsc Reg, bit

If (((Reg 8, (1 « Bit)) =- 0)

PC = PC + 1

endif

0110 bbbf ffff

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

btfss Reg bit

If ((Reg 8, (1 « Bit)) != 0 PC = PC + 1

endif

0111 bbbf ffff

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

call Address

[SP] = PC SP = SP + 1

PC = ((STATUS 8, OxOEO) « 4) + Address

1001 aaaa aaaa

Стирание информации в заданном регистре

clrf Reg

Reg = 0 Z = 1

0000 Ollf ffff

Стирание регистра w

clrw

W = 0 Z = 1

0000 0100 0000

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

clrwdt

WDT = 0 T0 = 1 P0 = 1

0000 0000 0100



Описание

Команда

Функция

Инвертирование содержимого

заданного регистра

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

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

с указателем d

comf Reg, d

If (ti - 1)

Reg = Reg " OxOFF else

w = Reg " OxOFF endif

Z = (Req - OxOFF) == 0

0010 Oldf ffff

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

decf Reg, d

if (d == 1)

Reg = Reg - 1 else

w = Reg - 1 endif

Z = (Req - 1) == 0

0011 lldf ffff

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

decfsz Reg, d

If (d == 1)

Reg = Reg - 1 else

w = Reg - 1 endif

PC = PC + 1

xf ((Reg - 1) 0)

PC = PC + 1

indif

0010 lldf ffff

Безусловный переход

к заданному адресу (требуются

два командных цикла)

goto Address

PC = ((STATUS J. OxOEO) « 4) + Address

101a aaaa aaaa

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

incf Reg, d

If (d == 1)

Reg = Reg + 1 else

w = Reg + 1

endif

Z = (Req + 1) == 0

0010 lOdf ffff

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

incfsz Reg, d

If (d == 1)

Reg = Reg + 1 else

w = Reg + 1

endif

PC = PC + 1

If ((Reg + 1) == 0)

PC = PC + 1 indif

0011 lldf ffff

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

lorlw к

W = w 1 к

Z = (w 1 k) 0

1101 kkkk kkkk

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

lorwf Reg, d

If (d == 1)

Reg = Reg 1 w else

w = Reg 1 w endif

Z = (Req 1 w) == 0

0001 OOdf ffff

Пересылка содержимого регистра в соответствии с указателем d

movf Reg d

If (d == 0) W = Reg endif

Z = Req == 0

0010 OOdf ffff



Описание

Команда

Функция

Загрузка конаанты Rjiertiapw

movlw к

W = к

1100 kkkk kkkk

Зафузка в региар содержимого региара w

movwf Reg

Reg = w

0000 OOlf ffff

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

0000 0000 0000

Загрузка содержимого регистра w в регистр OPTION

option

OPTION = w

0000 0000 0010

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

retlw к

W = к

SP - SP - 1 PC = [SP]

1000 kkkk kkkk

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

return

W = 0

SP = SP - 1 PC = [SPl

1000 0000 0000

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

rlf Reg, d

Temp = С

С = (Reg » 7) i 1 If (d - 1)

Reg = (Reg « 1) + Temp else

w = (Reg « 1) + Temp endif

0011 Oldf ffff

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

rrf Reg, d

Temp = С С = Reg 4 1 If (d == 1) Reg = (Reg » 1) + (Temp «

else

w = (Reg » 1) + (Temp « 7) endif

0011 OOdf ffff

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

sleep

Л0 = 1 PD = 0

0000 0000 0011

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

subwf Reg, d

If (d == 1)

Reg = Reg + (w " OxOFF) + 1 else

w = Reg + (w " OxOFF) + 1 endif

С = (Reg + (w " OxOFF) + 1) > OxOFF

Z = ((Reg (w " OxOFF) + 1) i OxOFF == b

DC == ((Reg S OxOF) + ((w OxOF) 8, OxOF) + 1) > OxOF

0000 10df ffff

Перемена меаами старшего и младшего полубайтов регистра и размещение результата в соответствии с указателем d

swapf Reg, d

if (d == 1)

Reg = ((Reg 8. OxOFO) » 4) + ((Reg 8, OxOF) « 4)

else

w = ((Reg 8, OxOFO) » 4) + ((Reg 8, OxOOF) « 4)

endif

0011 lOdf ffff



0 ... 567891011 ... 159


Яндекс.Метрика