» Статистика |
Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
|
НАБОР КОМАНД PIC МИКРОКОНТРОЛЛЕРОВ СЕМЕЙСТВА PIC18
Мнемоника |
Краткое описание |
Циклов |
16-ти битный код |
Изменяет флаги |
Прим. |
БАЙТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ |
ADDWF f,d,a |
Сложение W и f |
1 |
0010 01DA FFFF FFFF |
C, DC, Z, OV, N |
1, 2, 6
|
ADDWFC f,d,a |
Сложение W и f с использованием флага переноса |
1 |
0010 00DA FFFF FFFF |
C, DC, Z, OV, N |
1, 2, 6
|
ANDWF f,d,a |
Поразрядная операция И W и f |
1 |
0001 01DA FFFF FFFF |
Z, N |
1, 2, 6
|
CLRF f,a |
Очистка регистра f |
1 |
0110 101A FFFF FFFF |
Z |
2, 6
|
COMF f,d,a |
Инверсия содержимого регистра |
1 |
0001 11DA FFFF FFFF |
N,Z |
1, 2, 6
|
CPFSEQ f,a |
Операция сравнения f с W, пропуск след. команды если f=W |
1(2,3) |
0110 001A FFFF FFFF |
Нет |
4, 6
|
CPFSGT f,a |
Операция сравнения f с W, пропуск след. команды если f>W |
1(2,3) |
0110 010A FFFF FFFF |
Нет |
4, 6
|
CPFSLT f,a |
Операция сравнения f с W, пропуск след. команды если f<W |
1(2,3) |
0110 000A FFFF FFFF |
Нет |
4, 6
|
DCFSNZ f,d,a |
Уменьшение значения регистра f, пропуск следующей инструкции если результат не равен нулю |
1(2,3) |
0100 11DA FFFF FFFF |
Нет |
1, 2, 3, 4, 6
|
DECF f,d,a |
Уменьшение значения регистра f |
1 |
0000 01DA FFFF FFFF |
C, DC, Z, OV, N |
1, 2, 3, 4, 6
|
DECFSZ f,d,a |
Уменьшение значения регистра f, пропуск следующей инструкции если результат равен нулю |
1(2,3) |
0010 11DA FFFF FFFF |
Нет |
1, 2, 3, 4, 6
|
INCF f,d,a |
Увеличение значения регистра f |
1 |
0010 10DA FFFF FFFF |
C, DC, Z, OV, N |
1, 2, 3, 4, 6
|
INCFSZ f,d,a |
Увеличение значения регистра f, пропуск следующей инструкции если результат равен нулю |
1(2,3) |
0011 11DA FFFF FFFF |
Нет |
1, 2, 3, 4, 6
|
INFSNZ f,d,a |
Увеличение значения регистра f, пропуск следующей инструкции если результат не равен нулю |
1(2,3) |
0100 10DA FFFF FFFF |
Нет |
1, 2, 3, 4, 6
|
IORWF f,d,a |
Поразрядная операция ИЛИ W и f |
1 |
0001 00DA FFFF FFFF |
Z, N |
1, 2, 6
|
MOVF f, d, a |
Пересылка f |
1 |
0101 00DA FFFF FFFF |
Z, N |
1, 6
|
MOVFF fs, fd |
Пересылка из fs в fd |
2(3) |
1100 FFFF FFFF FFFFS 1111 FFFF FFFF FFFFD |
Нет |
|
MOVWF f,a |
Пересылка содержимого регистра W в регистр f |
1 |
0110 111A FFFF FFFF |
Нет |
6
|
MULWF f,a |
Умножение содержимого регистров W и f |
1 |
0000 001A FFFF FFFF |
Нет |
6
|
NEGF f, a |
перевод в обратную форму записи содержимого регистра f |
1 |
0110 110A FFFF FFFF |
C, DC, Z, OV, N |
1, 2, 6
|
RLCF f, d, a |
Сдвиг влево регистра f через перенос |
1 |
0011 01DA FFFF FFFF |
C, N, Z |
6
|
RLNCF f, d, a |
Сдвиг влево регистра f (без переноса) |
1 |
0100 01DA FFFF FFFF |
N, Z |
6
|
RRCF f, d, a |
Сдвиг вправо регистра f через перенос |
1 |
0011 00DA FFFF FFFF |
C, N, Z |
6
|
RRNCF f, d, a |
Сдвиг вправо регистра f (без переноса) |
1 |
0100 00DA FFFF FFFF |
N, Z |
6
|
SETF f,a |
Установка всех битов регистра f |
1 |
0110 100A FFFF FFFF |
Нет |
6
|
SUBFWB f,d,a |
Вычитание f из W c заемом |
1 |
0101 01DA FFFF FFFF |
C, DC, Z, OV, N |
1, 2, 6
|
SUBWF f,d,a |
Вычитание W из f |
1 |
0101 11DA FFFF FFFF |
C, DC, Z, OV, N |
6
|
SUBWFB f,d,a |
Вычитание W из f c заемом |
1 |
0101 10DA FFFF FFFF |
C, DC, Z, OV, N |
1, 2, 6
|
SWAPF f, d, a |
Обмен местами полу-байт регистра f |
1 |
0011 10DA FFFF FFFF |
Нет |
4, 6
|
TSTFSZ f,a |
тест f, пропуск если ноль |
1(2,3) |
1011 BBBA FFFF FFFF |
нет |
1, 2, 6
|
XORWF f,d,a |
Поразрядная операция исключающего ИЛИ W и f |
1 |
0001 10DA FFFF FFFF |
Z, N |
1, 2, 6
|
БИТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ |
BCF f,d,a |
Сброс бита в f |
1 |
1001 BBBA FFFF FFFF |
Нет |
1, 2, 6
|
BSF f,d,a |
Установка бита в f |
1 |
1000 BBBA FFFF FFFF |
Нет |
1, 2, 6
|
BTFSC f,b,a |
Пропуск следующей команды если бит сброшен |
1(2,3) |
1011 BBBA FFFF FFFF |
Нет |
3, 4, 6
|
BTFSS f,b,a |
Пропуск следующей команды если бит установлен |
1(2,3) |
1010 BBBA FFFF FFFF |
Нет |
3, 4, 6
|
BTG f,b,a |
Инвертирование бита в регистра f |
1 |
0111 BBBA FFFF FFFF |
Нет |
1, 2, 6
|
СИМВОЛЬНЫЕ КОМАНДЫ |
ADDLW k |
Сложение W и k |
1 |
0000 1111 KKKK KKKK |
C, DC, Z, OV, N |
|
ANDLW k |
Логическая операция И W и k |
1 |
0000 1011 KKKK KKKK |
Z, N |
|
IORLW k |
Логическая операция ИЛИ W и k |
1 |
0000 1001 KKKK KKKK |
Z, N |
|
LFSR f,k |
Загрузка регистра FSR |
2 |
1110 1110 00FF KKKK 1111 0000 KKKK KKKK |
Нет |
|
MOVLB k |
Пересылка литеры в регистр BSR |
1 |
0000 0001 KKKK KKKK |
Нет |
|
MOVLW k |
Пересылка литеры в регистр W |
1 |
0000 1110 KKKK KKKK |
Нет |
|
MULLW k |
Умножение константы и W |
1 |
0000 1101 KKKK KKKK |
Нет |
|
RETLW k |
Возврат прерывания с записью константы в регистр W |
2 |
0000 1100 KKKK KKKK |
Нет |
|
SUBLW k |
Вычитание W из константы |
1 |
0000 1000 KKKK KKKK |
C, DC, Z, OV, N |
|
XORLW k |
Логическая операция исключающего ИЛИ W и k |
1 |
0000 1010 KKKK KKKK |
Z, N |
|
ТАБЛИЧНЫЕ КОМАНДЫ |
TBLRD (*; *+; *-; +*) |
Чтение таблицы |
2 |
0000 0000 0000 10NN NN=0 * NN=1 *+
|
Нет |
|
TBLWT (*; *+; *-; +*) |
Запись в таблицу |
2 |
0000 0000 0000 00NN NN=0 * NN=1 *+
|
Нет |
|
КОМАНДЫ УПРАВЛЕНИЯ |
BC n |
Переход если установлен флаг переноса (CARRY) |
1(2) |
1110 0010 NNNN NNNN |
Нет |
|
BN n |
Переход если установлен флаг отрицательного результата (N) |
1(2) |
1110 0110 NNNN NNNN |
Нет |
|
BNC n |
Переход если сброшен флаг переноса (CARRY) |
1(2) |
1110 0011 NNNN NNNN |
Нет |
|
BNN n |
Переход если сброшен флаг отрицательного результата (N) |
1(2) |
1110 0111 NNNN NNNN |
Нет |
|
BNOV n |
Переход если сброшен флаг переполнения (OV) |
1(2) |
1110 0101 NNNN NNNN |
Нет |
|
BNZ n |
Переход если сброшен флаг нулевого результата (Z) |
1(2) |
1110 0001 NNNN NNNN |
Нет |
|
BOV n |
Переход если установлен флаг переполнения (OV) |
1(2) |
1110 0100 NNNN NNNN |
Нет |
|
BRA n |
Безусловный переход |
2 |
1101 0NNN NNNN NNNN |
Нет |
|
BZ n |
Переход если установлен флаг нулевого результата (Z) |
1(2) |
1110 0000 NNNN NNNN |
Нет |
|
CALL k,s |
Вызов подпрограммы |
2 |
1110 110S KKKK KKKK 1111 KKKK KKKK KKKK |
Нет |
|
CLRWDT |
Сброс сторожевого таймера (WDT) |
1 |
0000 0000 0000 0100 |
TO, PD |
|
DAW |
Десятичная коррекция регистра W |
1 |
0000 0000 0000 0111 |
C |
|
GOTO k |
Безусловный переход |
2 |
1110 1111 KKKK KKKK 1111 KKKK KKKK KKKK |
Нет |
|
NOP |
Нет операции |
1 |
0000 0000 0000 0000 |
Нет |
|
NOP |
Нет операции |
1 |
1111 XXXX XXXX XXXX XXXX |
Нет |
4
|
POP |
Извлечение из стека |
1 |
0000 0000 0000 0110 |
Нет |
|
PUSH |
Размещение в стеке |
1 |
0000 0000 0000 0101 |
Нет |
|
RCALL n |
Относительный вызов подпрограммы |
2 |
1101 1NNN NNNN NNNN |
Нет |
|
RESET |
Сброс |
1 |
0000 0000 1111 1111 |
Команда влияет на все флаги |
|
RETFIE s |
Возврат из прерывания |
2 |
0000 0000 0001 000S |
GIE/GIEH, PEIE/GIEL |
|
RETURN s |
Возврат из подпрограммы |
2 |
0000 0000 0001 001S |
Нет |
|
SLEEP |
Переход в режим SLEEP |
1 |
0000 0000 0000 0011 |
TO, PD |
|
Примечания:
- При выполнении операции чтение - модификация - запись с портом ввода
вывода исходное значение считывается с выводов порта, а не из выходных
защелок
- При записи в TMR0 предделитель TMR0 сбрасывается, если он подключен к TMR0
- Если условие истинно, или изменяется PC, команда выполняется за два цикла. Вторая команда NOP
- Некоторые команды имеют 2 16-ти разрядных слова. Если по
каким-то причинам счетчик команд попадет на 2-е слово команды, то оно
будет выполнено как NOP.
- Если производится запись во внутреннюю память, то следующая
команда не начнет выполнятся до тех пор пока не закончится цикл записи.
- В ассемблере MASM по умолчанию d=1.
Источник: http://kazus.ru |
Категория: Справочник | Добавил: tehnomir (30.06.2011)
|
Просмотров: 2630
| Рейтинг: 0.0/0 |
|
|
|