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

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

0 ... 10111213141516 ... 159


Описание

Команда

функция

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

регистра wreg

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

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

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

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

subwf reg d

If (d == 1)

Wreg = Reg - wreg else

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

«, (Reg < 0))

«, (Reg - wreg) < 0x080) OV = 1 else OV = 0

If ((Reg - wreg) > OxOFF)

С = 1 else С = 0 If (((Reg «, OxOF) -

(wreg & OxOF)) > OxOF)

DC = 1 else DC = 0 If (((Reg - wreg) «, OxOFF) == 0x000)

Z = 1 else

Z = 0

0000 OlOd ffff ffff

Вычитание (с учетом

переноса) содержимого

регистра wreg

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

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

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

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

subwfb Reg d

If (d == 1)

Wreg = Reg - wreg - С else

Reg = Reg - wreg - C If (((Reg > 0) «. (wreg > 0) «. ((Reg - wreg) - C) < 0x080) OV = 1 else OV = 0

If ((Reg - wreg - C) >

OxOFF) С = 1 else С = 0 If (((Reg «, OxOOF) -

(wreg «, OxOF) - C)

> OxOF)

DC = 1 else DC = 0

if (((Reg - wreg - C) «, OxOFF) = = 0x000) Z = 1 else

Z = 0

0000 OOld ffff ffff

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

swapf Reg d

If (d == 1) Wreg =

((Reg «, OxOOF) « 4) + ((Reg «, OxOFO) » 4) else Reg =

((Reg «, OxOOF) « 4) + ((Reg & OxOFO) » 4)

0001 llOd ffff ffff



Г" Описание

Команда

Функция

:f56mWHoe чтение Считывание через табличный регистр TBLATH одного [двухбайтов (старшего или рзпшегй) содержимого ячейки программной памяти, определяемой табличным указателем TBLPTR (riRa-три цикла)

tablrd t 1 f

If (t == 1)

F = TBLATH else

F = TBLATH TBLAT = ProgMera (TBLPTR) If (1 == 1) TBLPTR = TBLPTR + 1

1010 lOti ffff ffff

Табличная запись Запись содержимого регистра в ячейку профаммной памяти, задаваемой табличным указателем, через табличный регистр Если приемником является встроенная EEPROM, команда заканчивается только по прерыванию (выполняется за два цикла или до тех пор, пока не будет прерывания от таймера)

tablwt t 1 f

If (t == 0)

TBLATL = f else

TBLATH = f

TBLAT =

ProgMeiti (18LPTB) If (1 == 1) TBLPTR = TBLPTR + 1

1010 11ti ffff ffff

Считывание содержимого табличного регистра (старшего или младшего байта)

tlrd t f

If (t == 1)

F = TBLATH else f = TBLATL

1010 OOtO ffff ffff

Запись содержимого регистра в табличный регистр (старший или младший байт)

tlwt t f

If (t == 1)

TBLATH = f else TBLATL - f

1010 01t0 ffff ffff

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

tstfsz Reg

If Reg = = 0) PC = PC + 1

0011 0011 ffff ffff

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

xorlw Constant

wreg - wreg " Constant If ((wreg " Constant) == 0x000) Z = 1 else Z = 0

1011 0100 kkkk kkkk

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

xorwf Reg d

If (d == 1)

Wreg - wreg " Reg else

Reg = wreg " Reg If ((wreg " Reg)

== 0x000) Z = 1 else Z = 0

0000 110d ffff ffff



СИСТЕМА КОМАНД МИКРОКОНТРОЛЛЕРОВ ПОДСЕМЕЙСТВА PIC 18СХХ

В табл. 4.5 приводится система команд микроконтроллеров PIC 18Схх имеющих ряд дополнительных функциональных возможностей по сравнению с микроконтроллерами других подсемейств.

Таблица 4.5

Сиаема команд микроконтроллеров PIC 18СхХ

Описание

Команда

Функция

Код -

Спожение конаанты

addlw Constant

wreg = wreg + Constant

0000 1111 kkkk кыГ"

с"Одержимым

If ((wreg > 0)&

регистра wreg

(Constant > 0))«.

((wreg + Constant) >

Ox07F))

OV = 1

else OV = 0

If ((wreg + Constant)

> OxOFF)

С = 1

else С = 0

if ((wreg + Constant)

«.ОхООВО) 1= 0)

N = 1

else N = 0

If ((wreg & OxOF) +

(Constant «. OxOF))

> OxOF) DC = 1

else DC = 0

If ((wreg + Constant)

«. OxOFF) == 0x000)

Z = 1

else Z = 0

Сложение

addwf Reg d a

If (d == 1)

0010 Olda ffff ffff

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

wreg = wreg + Reg

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

else

wreg и размещение

Reg = wreg + Reg

результата

If (((wreg > 0 «. (Reg > 0))

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

«. ((wreg + Reg) > 0x07F))

со значением

OV = 1

указателя d

else OV = 0

Если а = 1, то при

If ((wreg + Reg) & OxOBO)

доступе используется

1= 0)

регистр выбора банка,

N = 1

иначе - банк доступа

else N = 0

If ((wreg + Reg) > OxOFF) r-1

и - 1

else С = 0

If (((wreg «. OxOF) +

(Reg & OxOF)) > OxOF)

DC = 1

else DC - 0

If (((wreg + Reg) «. OxOFF)

== 0x000)

Z = 1

else Z - 0



0 ... 10111213141516 ... 159