Главная »
Периодика »
Безопасность0 ...
16171819202122 ...
159Описание | Команда | Реальные команды | функция |
Пропуск следующей команды при отсугавии десятичного переноса | skpndc | btfsc STATUS DC | If (DC - 0) PC = PC + 1 |
Пропуск следующей команды при отсутствии признака нуля | skpnz | btfsc STATUS Z | If (Z == 0) PC = PC + 1 |
Пропуск последующей команды при наличии признака нуля | skpz | btfss STATUS Z | If (Z =- 1) PC - PC + 1 |
Вычитание переноса из содержимого региара | subcf Reg d | btfsc STATUS С decf Reg d | If (C == 1) If (d =- 1) Reg - Reg 1 else w - Req 1 |
Вычитание десятичного переноса из содержимого регистра | subdcf Reg d | btfsc STATUS DC decf Reg d | If (DC == 1) If (d == 1) Reg = Reg - 1 else w = Req - 1 |
«Тестирование» регистра на равенство содержимого нулю (установка признака нуля) | movfw Reg | movf Reg w | If (Reg =- 0) Z = 1 else Z - 0 |
АССЕМБЛЕР ФИРМЫ PARALLAX INC. ДЛЯ PIC-МИКРОКОНТРОЛЛЕРОВ
Фирма Parallax Inc разработала для PIC-микроконтроллеров язык программирования, известньпг под названием РА SM. Этот поп}лярньп1 ассемблер весьм-г1 схож с ассембтером микроконтроллеров семейства Intel 8051 Ассемблер PASM также поддерживает формат команд ассемблера MPASM (стандартный макроассемблер фирмы Microchip)
Некоторые из команд создавались специально для микрокон троллеров PICmicro® младшего подсемег1ства, о чем имеются соответствующие упоминания в табл 4.9. Эти команды не рекомендуется использовать при работе с микроконтроллерами среднего под семей ства, иначе могут возникнуть неожиданные и нежелательные изменения содержимого регистров w и STATUS
Подробную информацию о языке программирования PASM мож но получить на Web-сайте фирмы Parallax Inc В приведенной ниже табл. 4 7, содержащей набор базовых команд PASM, использованы следующие обозначения:
# - константы;
f г - регистр файла.
Команды | Функция | Число | | флаги. | Реальные |
PASM | циклов | | действие | команды |
| Байт-ориент | лрованные команды |
Clr Pa ГШ | Обнуление (сброс) | | | | | |
| w = 0 | | | | | | clrw |
| fr = 0 | | | | | | clr fr |
| WDT - 0 | | | | | clrwdt |
MOV Farm | Перемещение данных | | | | | |
w » | w - « | | | | | | movlw « |
w f r | w - fr | | | | | | movf fr w |
w /fr | * = fr OxOFF | | | | | | comf fr w |
w f r-w | w - fr + (w " | OxOFF) + 1 | | | | | subwf fr w |
w ++f r | w - fr + 1 | | | | | | incf fr w |
w -fr | w - fr 1 | | | | | | decf fr w |
w »f r | w = fr >> 1 | | | | | | rrf fr w |
w «fr | w - fr << 1 | | | | | | rlf fr w |
W Of r | w NibSwap fr | | | | | | swapf fr w |
fr w | fr = w | | | | | | movwf fr |
iport w | TRIS - w | | | | | | TRIS Port |
iPort « | TRIS = # | | | | | | movlw Й TRIS Port |
iPort fr | TRIS - fr | | | | | | movf r w TRIS Port |
OPTION w | OPTION = w | | | | | | OPTION |
OPTION « | OPTION = « | | | | | | movlw Й OPTION |
OPTION fr | OPTION - fr | | | | | | movf fr w OPTION |
fr « | fr - « | | | | | | movlw Й movwf fr |
fr2 fr2 | fr = fr2 | | | | | | movf fr2 w movwf fr |
ADD Pariii | Сложение двух величин | | | | | |
w fr | w - w + fr | | | | | | addwf fr w |
fr w | fr = w + fr | | | | | | addwf fr f |
fr « | fr = fr + « | | | | | С DC | movlw « addwf fr f |
fr fr2 | fr - fr + fr2 | | | | | С DC | mov fr2 w addwf fr f |
SUB Parm | Вычитание | | | | | | |
fr w | fr - fr + (w " | OxOFF) + 1 | | | | | subwf fr f |
fr e | fr = fr + (« " | OxOFF) + 1 | | | | С DC | movlw Й subwf fr f |
r fr2 | fr - fr + (« " | OxOFF) + 1 | | | | С DC | movf fr2 w |
| | | | | | | subwf fr f |
AND Parm | Логическое И | | | | | | |
w « | w = w 4 # | | | | | | andlw « |
w fr | w - w 4 fr | | | | | | andwf fr w |
fr w | fr = w 4 fr | | | | | | andwf fr f |
fr « | fr - fr & # | | | | | | movlw # and fr f |
fr fr2 | fr = fr & fr2 | | | | | | movf fr2 w andwf fr f |
команды pasm | функция | число циклов | флаги, действие | реальные команды |
байт-ориентированные команды |
OR Parm | Логическое ИЛИ | | | |
w » | w = w 1 « | | | lorflw » |
w f г | w = w 1 fr | | | lOrwf fr w |
f г w | fr = fr 1 w | | | lOrwf fr f |
fr « | fr = fr 1 « | | w Z | movlw Й lOrwf fr f |
fr fr2 | fr = fr 1 fr2 | | w Z | movf fr2 w lorwf fr f |
XOR Parm | Исключающее ИЛИ | | | |
w # | w = w ~ # | | | xorlw # |
w fr | w = w " fr | | | xorwf fr w |
f r w | fr =fr " w | | | xorwf fr f |
fr « | fr = fr " « | | w Z | movlw Й xorwf fr f |
fr fr2 | r = fr fr2 | | w Z | movf fr2 w xorwf fr " |
OEC Parm | Декрементирование содержимого региара | | | |
| fr = fr - 1 | | | decf fr f |
INC Parm | Инкрементирование содержимого региара | | | |
| fr = fr + 1 | | | incf fr f |
NEC Parm | Арифметическое дополнение | | | |
| (изменение знака) | | | comf fr f |
| fr = 0 - fr | | | incf fr f |
NOT Parm | Инвертирование кода | | | |
| W = W " OxOFF | | | xorlw OxOFF |
| fr = fr OxOFF | | | comf fr |
TEST Parm | Проверка на равенство | | | |
| нупю | | | lorlw 0 |
| Z = (W - 0) Z = (fr == 0) | | | movf fr f |
RR parm | Циклический сдвиг содержимого регистра | | | |
| вправо fr = fr » 1 | | | rrf fr f |
RL Parm | Циклический сдвиг содержимого регистра | | | |
| влево fr = fr « 1 | | | rlf fr f |
SWAP Parm | Смена местами полубайтов | | | |
| fr = fr о fr | | | swapf fr, f |
бит-ориентированные команды |
CLRB fr bit | fr bit = 0 | | | bcf fr bit |
SETB fr bit | fr bit = 1 | | | bsf fr bit |
| Carry = 0 | | | bcf STATUS с |
| Carrv = 1 | | | bsf STATUS с |
| Zero = 0 | | | bcf STATUC Z |
0 ...
16171819202122 ...
159