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

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

0 ... 14151617181920 ... 159


Описание

Команда

Функция

Вычитание

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

subfwb Reg d

If (d 1)

wreg = wreg - Reg - C else

Reg = wreg - Reg - C If (((Reg > 0) 4 (wreg > 0))

& ((Wreg = Reg - C)

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

S, 0x080) 1= 0) N = 1 else N = 0

If ((wreg - Reg - C) >

OxOFF) С = 1

else С = 0

If (((wreg 4 OxOF) -

(Reg 8, OxOF) - C) > OxOF) DC = 1 else DC = 0 If (((w-eg - Reg - O 8, OxOFF) == 0x000) Z = 1

else Z = 0

0101 Olda ffff ff<

Вычитание

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

sublw Constant

wreg = Constant - wreg If (((wreg < 0) 4 (Constant < 0) S,

((Constant - Kreg) < 0x080) OV = 1 else OV = 0 If (((Constant -wreg) 8, 0x080) = 0) N = 1 else N = 0

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

If (((Constant 8, OxOF) -(wreg 4 OxOF)) > OxOF) DC = 1 else DC = 0 If (((Constant - wreg) S, OxOFF) == 0x000) Z = 1

else Z = 0

0000 1000 kkkk кккк



Хаблицо 4.5

Система команд микроконтроллеров Р1С 18Схх (продолжение) Описание

Команда

Функция

•g;:;;:;e (с учетом переноса)

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

Доступ - а соответствии с указателем а

subwf Reg d а

If (d - 1)

wreg = Reg - wreg else

Reg = Reg - wreg If (((wreg < 0) 4 (Reg < 0) 4 ((Reg - wreg) < 0x080)) OV = 1 else OV = 0

If (((Reg - wreg) 4 0x080)

= 0) N = 1

else N = 0

If ((Reg - wreg) > OxOFF) С = 1

else С = 0

If (((Reg 4 OxOF) - (wreg 4

OxOF)) > OxOF) DC = 1 else DC = 0

If (((Reg - wreg) « OxOFF)

== 0x000) Z = 1

else Z = 0

0101 llda ffff ffff

Вычитание

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

Доступ - в соответствии с указателем а

subwfb Reg d а

If (d == 1)

wreg = Reg - wreg - С else

Reg = Reg - wreg - C If (((Reg > 0) 4 (wreg > 0))

4 ((Reg - wreg - C) <

0x080)) DV = 1 else OV = 0

If (((Reg - wreg - C) & 0x080) 1= 0) N = 1 else N = 0

If ((Reg - wreg - C) >

OxOFF)) С = 1 else С = 0

If (((Reg & OxOF) - (wreg 4

OxOF) - 1С) > OxOF) DC = 1 else DC = 0

If (((Reg - wreg - <C) 4

OxOFF) == 0x000) Z = 1

else Z = 0

0101 lOda ffff ffff



Описание

Команда

Функция

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

Доступ - в соответствии с указателем а

swapf Reg, d, а

If (d == 1)

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

else

Reg = ((Reg & OxOOF) « 4) + ((Reg 8 OxOFO) » 4)

0011 lOda ffff ffff

Табличное чтение с вариантами. Считывание содержимого ячейки программной памяти, определяемой табличным указателем TBLPTR {два-три цикла)

tablrd Option

Switcri(Option) Case •

TABLAT = ProgMem (TBLPTR)

Case •+ TABLAT = ProgMem (TBLPTR) TBLPTR = TBLPTR ♦ 1

Case -

TABLAT = ProgMem (TBLPTR) TBLPTR = TBLPTR - 1

Case +

TBLPTR = TBLPTR + 1 TABLAT = ProgMera (TBLPTR)

0000 0000 0000 lOnn ПП Option

00 •

01 •+

10 •-

11 +•

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

tablwt Option

Switch(Option) Case •

ProgMem (TBLPTR) = TABLAT

Case +

ProgMem (TBLPTR) = TABLAT TBLPTR = TBLPTR + 1

Case -

ProgMem (TBLPTR) = TABLAT TBLPTR = TBLPTR + 1

Case +• TBLPTR = TBLPTR + 1 ProgMem (TBLPTR) = TABLAT

0000 0000 0000 linn nn Option

01 + 10

11 +•

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

tstfsz Reg, a

if (Reg == 0) PC = Nextlns

0110 011a ffff ffff

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

xorlw Constant

wreg = wreg " Constant If ((wreg Constant)

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

if ((wreg Constant)

8 0x080) 1= 0) N = 1

else N = 0

0000 1010 kkkk кккк



0 ... 14151617181920 ... 159