Составители:
9
BTFSC f, b
BTFSS f, b
Команды условных переходов BTFSC и BTFSS проверяют состоя
ние заданного бита в любом регистре и в зависимости от результата
пропускают или нет следующую команду. Команда BTFSC пропуска
ет команду, если заданный бит сброшен, а команда BTFSS – если
установлен.
CALL k
RETURN
Эти две команды предназначены для работы с подпрограммами.
Команда CALL используется для перехода на подпрограмму по адресу,
задаваемому в команде, а команда RETURN – для возврата из под
программы. Обе команды выполняются за 2 цикла. Адрес команды,
следующей после команды CALL, запоминается в стеке. Стек недосту
пен для обращения и используется только при вызовах подпрограмм
и возвратах из них. Глубина стека, т. е. число специальных регистров,
входящих в его состав, равна 8. Поэтому из основной программы мож
но сделать не более 8 вложенных вызовов подпрограмм. Последней
командой подпрограммы всегда является команда RETURN, при вы
полнении которой адрес из стека записывается в РС, и таким образом
после возврата из подпрограммы выполнение основной программы
продолжается со следующей после CALL команды. Отметим особо, что
поскольку в большинстве случаев регистр W и регистр STATUS могут
быть использованы в подпрограмме, их содержимое на момент вызова
подпрограммы будет потеряно. Поэтому при вызове подпрограммы их
содержимое нужно сохранить в свободных ячейках памяти, а перед
командой RETURN поместить команды, восстанавливающие их со
держимое на момент вызова подпрограммы.
RETLW k
RETFIE
Существуют еще две команды, предназначенные для возврата из
подпрограмм. Команда RETLW записывает при возврате в рабочий
регистр W константу, заданную в этой команде, а команда RETFIE
используется при возврате из прерывания.
Специальные команды
Осталось упомянуть о двух специальных командах – CLRWDT
и SLEEP.
Команда CLRWDT предназначена для программного сброса сто
рожевого таймера (WDT). Эта команда должна присутствовать в та
Страницы
- « первая
- ‹ предыдущая
- …
- 7
- 8
- 9
- 10
- 11
- …
- следующая ›
- последняя »