Макроопределения ассемблера MPASM

Все приведенные ниже макрокоманды ассемблера MPASM встроенны в него по умолчанию, поэтому программист может пользоваться ими как основными командами. Большая часть макроопределений - это переходы по условиям и управление флагами регистра STATUS. Однако следует помнить, что при трансляции программ с этими макроопределениями другими ассемблерами ошибки неизбежны...

Макроопределение

Действие

Макроопределение

Действие

ADDCF

macro

с

btfsc

STATUS, C

incf

f, d

endm

Добавить к содержимому регистра f значение признака переноса

MOVFW

macro

f

movf

f, 0

endm

Копировать содержимое регистра f в регистр W

ADDDCF

macro

f, d

btfsc

STATUS, DC

incf

f, d

endm

Добавить к содержимому регистра f значение признака вспомогательного переноса

NEGF

macro

f, d

comf

f, 1

incf

f, d

endm

Изменить знак числа, находящегося в регистре f

B

macro

k

goto

k

endm

Безусловный переход

SETC

macro

bcf

STATUS, C

endm

Установить признак переноса

BC

macro

k

btfsc

STATUS, C

goto

k

endm

Переход, если перенос

SETDC

macro

bcf

STATUS, DC

endm

Установить признак вспомогательного переноса

BDC

macro

k

btfsc

STATUS, DC

goto

k

endm

Переход, если вспомогательный перенос

SETZ

macro

bcf

STATUS, Z

endm

Установить признак нуля

BNC

macro

k

btfss

STATUS, C

goto

k

endm

Переход, если нет переноса

SKPC

macro

btfss

STATUS, C

endm

Пропустить следующую команду, если перенос

BNDC

macro

k

btfss

STATUS, DC

goto

k

endm

Переход, если нет вспомогательного переноса

SKPDC

macro

btfss

STATUS, DC

endm

Пропустить следующую команду, если вспомогательный перенос

BNZ

macro

k

btfss

STATUS, Z

goto

k

endm

Переход, если не ноль

SKPNC

macro

btfsc

STATUS, C

endm

Пропустить следующую команду, если нет переноса

BZ

macro

k

btfsс

STATUS, Z

goto

k

endm

Переход, если ноль

SKPNDC

macro

btfsc

STATUS, DC

endm

Пропустить следующую команду, если нет вспомогательного переноса

CLRC

macro

bcf

STATUS, C

endm

Снять признак переноса

SKPZ

macro

btfss

STATUS, Z

endm

Пропустить следующую команду, если ноль

CLRDC

macro

bcf

STATUS, DC

endm

Снять признак вспомогательного переноса

SKPNZ

macro

btfsc

STATUS, Z

endm

Пропустить следующую команду, если нет нуля

CLRZ

macro

bcf

STATUS, Z

endm

Снять признак нуля

TSTF

macro

f

movf

f, 1

endm

Проверить на ноль содержимое регистра f