| » Статистика |
Онлайн всего: 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)
|
| Просмотров: 2725
| Рейтинг: 0.0/0 |
|
|
|