Описание:
Команда вызывает подпрограмму в пределах +2 Кслов (4 Кбайт). Адрес возврата (после выполнения команды RCALL) сохраняется в стеке (См. также команду CALL).
Операция
| (i) | PC <-- PC + k + 1 Приборы с 16-разрядным счетчиком команд, максимум 128 Кбайт памяти программ | |||
| (ii) | PC <-- PC + k + 1 Приборы с 22-разрядным счетчиком команд, максимум 8 Мбайт памяти программ | |||
| Синтаксис | Операнды: | Счетчик программ: | Стек | |
| (i) | RCALL k | -2K < k <2K | PC <-- PC + k + 1 | STACK <-- PC + 1 SP <-- SP-2 (2 байта, 16 бит) |
| (ii) | RCALL k | -2K < k <2K | PC <-- PC + k + 1 | STACK <-- PC + 1 SP <-- SP-3 (3 байта, 22 битa) |
16-разрядный код операции:
| 1101 | kkkk | kkkk | kkkk |
Булевы выражения регистра статуса (SREG)
|
||||||||
|
Пример:
rcall routine ; Вызвать подпрограмму
. . .
routine: push r14 ; Сохранить r14 в стеке
. . .
pop r14 ; Восстановить r14
ret ; Вернуться из подпрограммы
Слов: 1 (2 байта)
Циклов: 3