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

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

0 ... 6789101112 ... 159

Описание

Команда

Функция

Пересылка содержимого регистра w в региар управления порта TRIS

tris Port

TRIS(Port) = w

0000 0000 Oppp

Исключающее ИЛИ содержимого регистра w с константой

xorlf к

W = w " к

Z = (w - к) == 0

1111 kkkk kkkk

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

xorwf Reg, d

If (d == 1) Reg = Reg w

else w = Reg w

endif

Z = (Reg " w) == 0

0001 lOdf ffff

Таблица 4.3

Сиаема команд PIC-микроконтроллеров среднего подсемейаво

Описание

Команда

Функция

Сложение константы

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

addlw к

W = w + к

с = (w + к) > OxOFF Z = ((w + к) 8, OxOFF) 0

DC = ((w 8 OxOF) + (k 8, OxOF)) >OxOF

11 lllx kkkk kkkk »

Сложение содержимого регистра с содержимым регистра W и размещение результата в соответствии со значением указателя б

addwf Reg, d

If (d == 1)

Reg = Reg + w else

w = Reg + w endif

С = (Reg + w) > OxOFF Z = ((Reg + w) & OxOFF) == 0

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

flO 0111 dfff ffff

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

andlw к

W = w & к

Z = (w & к) == 0

11 1001 kkkk kkkk

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

andwf Reg, d

If (d == 1) Reg = Reg & w

else w = Reg & w

endif

Z = (Req 8, w) == 0

00 0101 dfff ffff

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

bcf Reg, bit

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

01 OObb bfff ffff

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

bsf Reg, bit

Reg = Reg 1 (1 « Bit)

01 Oibb bfff ffff



[---описание

команда

функция

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

btfsc Reg, bit

if ((Reg & (1 « Bit)))

== 0

PC = PC + 1

endif

01 10bb bfff ffff

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

btfsb Reg, bit

if ((Reg 8. (1 « Bit))) •= 0

PC = PC + 1

endif

01 libb bfff ffff

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

call Address

[SP] = PC

SP = SP + 1

PC = ((PCLATH « B)

8, 0x01800) + Address

10 Oaaa aaaa aaaa

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

clrf Reg

Reg = 0 Z = 1

00 0001 Ifff ffff

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

clrw

W = 0 Z = 1

00 0001 Oxxx xxxx

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

clrwdt

WOT = 0 T0 = 1 PD = 1

00 0000 0110 0100

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

codif Reg d

if (d == 1)

Reg = Reg " OxOFF else

w = Reg " OxOFF endif

Z = (Req " OxOFF) == 0

00 1001 dfff ffff

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

decf Reg, d

if (d == 1) Reg = Reg - 1

else w = Reg - 1

endif

Z = (Req - 1) == 0

00 0011 dfff ffff

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

decfsz Reg, d

if (d - 1) Reg = Reg - 1

else w = Reg - 1

endif

if ((Reg - 1) == 0)

PC = PC + 1 endif

00 1011 dfff ffff

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

goto Address

PC = ((PCLATH « 8) i 0x01800) + Address

10 laaa aaaa aaaa



Описание

Команда

Функция

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

incf Reg. d

If (d == 1) Reg = Reg + 1

else w = Reg + 1

endif

Z = (Req + 1) == 0

00 1010 dfff ffff

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

incfsz Reg, d

if (d == 1) Reg = Reg + 1

else w = Reg + 1

endif

If ((Reg + 1) == 0

PC = PC + 1 endif

00 1111 dfff ffff

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

lorlw к

W = w 1 к

Z = (w 1 k) == 0

11 1000 kkkk kkkk

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

lorwf Reg. d

If (d == 1) Reg = Reg 1 w

else w = Reg 1 w

endif

Z = (Reg 1 w) 0

00 0100 dfff ffff

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

movf Reg, d

if (d 0)

W = Reg endif

Z = Req == 0

00 1000 dfff ffff

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

movlw К

W = к

11 OOxx kkkk kkkk

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

movwf Reg

Reg = w

00 0000 Ifff tfff

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

00 0000 OxxO 0000

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

option

Option = w

00 0000 0110 0010

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

retfie

GIE = 1 SP = SP - 1

PC = rspi

00 0000 0000 1001

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

retlw к

W = к

SP = SP - 1 PC = tSP]

11 Olxx kkkk kkkk

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

return

SP = SP - 1 PC = Г5Р1

00 0000 0000 1000

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

rlf Reg. d

Temp = С

С = (Reg » 7) 4 1 If (d == 1)

Reg = (Reg « 1) + Temp else

w = (Reg « 1) + Temp endif

00 1101 dfff ffff



0 ... 6789101112 ... 159


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