НПО Системы Безопасности
(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
|
|