Страница
| Адрес
| Анкор
|
http://citystyle61.ru/index.php?route=information/contact
| http://www.opencart.com
| OpenCart
|
http://citystyle61.ru/index.php?route=information/contact
| http://rb.labtodo.com/page/opencart-1505-russian-language-pack
| Русский перевод Опенкарт
|
http://citystyle61.ru/index.php?route=information/contact
| http://money.yandex.ru
| n/t
|
http://citystyle61.ru/dostavka
| http://www.cdek.ru/tarif/
| http://www.cdek.ru/tarif/
|
http://citystyle61.ru/dostavka
| http://www.cdek.ru/nakladnoy/
| http://www.cdek.ru/nakladnoy/
|
http://citystyle61.ru/dostavka
| http://www.opencart.com
| OpenCart
|
http://citystyle61.ru/dostavka
| http://rb.labtodo.com/page/opencart-1505-russian-language-pack
| Русский перевод Опенкарт
|
http://citystyle61.ru/dostavka
| http://money.yandex.ru
| n/t
|
http://citystyle61.ru/kak-oplatit-zakaz
| http://www.robokassa.ru
| здесь
|
http://citystyle61.ru/kak-oplatit-zakaz
| http://www.webmoney.ru
| n/t
|
http://citystyle61.ru/kak-oplatit-zakaz
| http://money.yandex.ru
| n/t
|
http://citystyle61.ru/kak-oplatit-zakaz
| http://money.yandex.ru
| на сайте платежной системы
|
http://citystyle61.ru/kak-oplatit-zakaz
| http://www.handybank.ru/index.php?option=com_content&view=article&id=1827&Itemid=158
| система Интернет-банк следующих банков
|
http://citystyle61.ru/kak-oplatit-zakaz
| http://www.opencart.com
| OpenCart
|
http://citystyle61.ru/kak-oplatit-zakaz
| http://rb.labtodo.com/page/opencart-1505-russian-language-pack
| Русский перевод Опенкарт
|
http://citystyle61.ru/kak-oplatit-zakaz
| http://money.yandex.ru
| n/t
|
http://citystyle61.ru
| http://www.opencart.com
| OpenCart
|
http://citystyle61.ru
| http://rb.labtodo.com/page/opencart-1505-russian-language-pack
| Русский перевод Опенкарт
|
http://citystyle61.ru
| http://money.yandex.ru
| n/t
|
Система команд
Каждая команда микроконтроллеров PIC16F87X состоит из одного 14-разрядного слова, разделенного на код операции (OPCODE), определяющий тип команды и один или несколько операндов, определяющие операцию команды.
Полный список команд смотрите в таблице 13-2. Команды разделены на следующие группы: байт ориентированные команды, бит ориентированные команды, команды управления и операций с константами. Описание полей кода операции смотрите в таблице 13-1.
Для байт ориентированных команд 'f' является указателем регистра, а 'd' указателем адресата результата.
Указатель регистра определяет, какой регистр должен использоваться в команде. Указатель адресата определяет, где будет сохранен результат. Если 'd'=0, результат сохраняется в регистре W. Если 'd'=1, результат сохраняется в регистре, который используется в команде.
В бит ориентированных командах 'b' определяет номер бита участвующего в операции, а 'f' - указатель регистра, который содержит этот бит.
В командах управления или операциях с константами 'k' представляет восемь или одиннадцать бит константы или значения литералов.
Система команд аккумуляторного типа, ортогональна и разделена на три основных группы:
• Байт ориентированные команды;
• Бит ориентированные команды;
• Команды управления и операций с константами.
Все команды выполняются за один машинный цикл, кроме команд условия, в которых получен истинный результат и инструкций изменяющих значение счетчика команд PC. В случае выполнения команды за два машинных цикла, во втором цикле выполняется инструкция NOP. Один машинный цикл состоит из четырех тактов генератора. Для тактового генератора с частотой 4 МГц все команды выполняются за 1мкс, если условие истинно или изменяется счетчик команд PC, команда выполняется за 2мкс.
Мнемоника команд, поддерживаемая ассемблером MPASM, показана в таблице 13-2. На рисунке 13-1 показан форма команд трех основных групп.
Примечание. Для совместимости программного обеспечения со следующими версиями микроконтроллеров PICmicro не используйте команды TRIS и OPTION.
Во всех примерах используется следующий формат шестнадцатеричных чисел:
0xhh, где h - шестнадцатеричная цифра.
Таблица 1-Описание полей кода операции
Поле
| Описание
|
f
| Адрес регистра (от 0x00 до 0x7F)
|
w
| Рабочий регистр (аккумулятор)
|
b
| Номер бита в 8-разрядном регистре
|
k
| Константа (данные или метка)
|
x
| Не имеет значения (0 или 1). Ассемблер генерирует x=0 для совместимости программы микроконтроллера с инструментальными средствами
|
d
| Указатель адресата результата операции:
d = 0 - результат сохраняется в регистре w
d = 1 - результат сохраняется в регистре f
По умолчанию d = 1
|
label
| Имя метки
|
TOS
| Вершина стека
|
PC
| Счетчик команд
|
PCLATH
| Буфер старшего байта счетчика команд
|
GIE
| Бит глобального разрешения прерываний
|
WDT
| Сторожевой таймер
|
-TO
| Флаг переполнения WDT
|
-PD
| Флаг сброса по включению питания
|
dest
| Приемник, регистр w или регистр памяти
|
[ ]
| Дополнительные параметры
|
()
| Содержимое
|
®
| Присвоение
|
< >
| Битовое поле
|
Î
| Из набора
|
Курсив
| Термин, определяемый пользователем
|
Мнемоника команды
| Описание
| 14-разрядный код
| Изм.
флаги
| Прим.
| |
|
Циклов
| Бит 13 Бит 0
| |
Байт ориентированные команды
| |
ADDWF
| f,d
| Сложение W и f
|
| 00 0111 dfff ffff
| C,DC,Z
| 1,2
| |
ANDWF
| f,d
| Побитное 'И' W и f
|
| 00 0101 dfff ffff
| Z
| 1,2
| |
CLRF
| f
| Очистить f
|
| 00 0001 1fff ffff
| Z
|
| |
CLRW
| -
| Очистить W
|
| 00 0001 0xxx xxxx
| Z
|
| |
COMF
| f,d
| Инвертировать f
|
| 00 1001 dfff ffff
| Z
| 1,2
| |
DECF
| f,d
| Вычесть 1 из f
|
| 00 0011 dfff ffff
| Z
| 1,2
| |
DECFSZ
| f,d
| Вычесть 1 из f и пропустить если 0
| 1(2)
| 00 1011 dfff ffff
|
| 1,2,3
| |
INCF
| f,d
| Прибавить 1 к f
|
| 00 1010 dfff ffff
| Z
| 1,2
| |
INCFSZ
| f,d
| Прибавить 1 к f и пропустить если 0
| 1(2)
| 00 1111 dfff ffff
|
| 1,2,3
| |
IORWF
| f,d
| Побитное 'ИЛИ' W и f
|
| 00 0100 dfff ffff
| Z
| 1,2
| |
MOVF
| f,d
| Переслать f
|
| 00 1000 dfff ffff
| Z
| 1,2
| |
MOVWF
| f
| Переслать W в f
|
| 00 0000 1fff ffff
|
|
| |
NOP
| -
| Нет операции
|
| 00 0000 0xx0 0000
|
|
| |
RLF
| f,d
| Циклический сдвиг f влево через перенос
|
| 00 1101 dfff ffff
| C
| 1,2
| |
RRF
| f,d
| Циклический сдвиг f вправо через перенос
|
| 00 1100 dfff ffff
| C
| 1,2
| |
SUBWF
| f,d
| Вычесть W из f
|
| 00 0010 dfff ffff
| C,DC,Z
| 1,2
| |
SWAPF
| f,d
| Поменять местами полубайты в регистре f
|
| 00 1110 dfff ffff
|
| 1,2
| |
XORWF
| f,d
| Побитное 'исключающее ИЛИ' W и f
|
| 00 0110 dfff ffff
| Z
| 1,2
| |
Бит ориентированные команды
| |
BCF
| f,b
| Очистить бит b в регистре f
|
| 01 00bb bfff ffff
|
| 1,2
| |
BSF
| f,b
| Установить бит b в регистре f
|
| 01 01bb bfff ffff
|
| 1,2
| |
BTFSC
| f,b
| Проверить бит b в регистре f, пропустить
если 0
| 1(2)
| 01 10bb bfff ffff
|
|
| |
BTFSS
| f,b
| Проверить бит b в регистре f, пропустить
1 если
| 1(2)
| 01 11bb bfff ffff
|
|
| |
Команды управления и операций с константами
| |
ADDLW
| k
| Сложить константу с W
|
| 11 111x kkkk kkkk
| C,DC,Z
|
| |
ANDLW
| k
| Побитное 'И' константы и W
|
| 11 1001 kkkk kkkk
| Z
|
| |
CALL
| k
| Вызов подпрограммы
|
| 10 0kkk kkkk kkkk
|
|
| |
CLRWDT
| -
| Очистить WDT
|
| 00 0000 0110 0100
| -TO,-PD
|
| |
GOTO
| k
| Безусловный переход
|
| 10 1kkk kkkk kkkk
|
|
| |
IORLW
| k
| Побитное 'ИЛИ' константы и W
|
| 11 1000 kkkk kkkk
| Z
|
| |
MOVLW
| k
| Переслать константу в W
|
| 11 00xx kkkk kkkk
|
|
| |
RETFIE
| -
| Возврат из подпрограммы с разрешением
прерываний
|
| 00 0000 0000 1001
|
|
| |
RETLW
| k
| Возврат из подпрограммы с загрузкой
константы в W
|
| 11 01xx kkkk kkkk
|
|
| |
RETURN
| -
| Возврат из подпрограммы
|
| 00 0000 0000 1000
|
|
| |
SLEEP
| -
| Перейти в режим SLEEP
|
| 00 0000 0110 0011
| -TO,-PD
|
| |
SUBLW
| k
| Вычесть W из константы
|
| 11 110x kkkk kkkk
| C,DC,Z
|
| |
XORLW
| k
| Побитное 'искл. ИЛИ' константы и W
|
| 11 1010 kkkk kkkk
| Z
|
| |
| | | | | | | | | | | | | |
Примечания:
1. При выполнении операции "чтение - модификация - запись" с портом ввода/вывода исходные
значения считываются с выводов порта, а не из выходных защелок. Например, если в
выходной защелке было записана '1', а на соответствующем выходе низкий уровень сигнала, то
обратно будет записано значение '0'.
2. При выполнении записи в TMR0 (и d=1) предделитель TMR0 сбрасывается, если он подключен к модулю TMR0.
3. Если условие истинно или изменяется значение счетчика команд PC, то инструкция выполняется за два цикла. Во втором цикле выполняется команда NOP.