Команда RCALL - вызвать подпрограмму относительно
Описание:
Команда вызывает подпрограмму в пределах +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-разрядный код операции:
Булевы выражения регистра статуса (SREG)
Пример:
rcall routine ; Вызвать подпрограмму
. . .
routine: push r14 ; Сохранить r14 в стеке
. . .
pop r14 ; Восстановить r14
ret ; Вернуться из подпрограммы
Слов: 1 (2 байта)
Циклов: 3
|