Описание:
Команда вызывает подпрограмму в пределах +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