Команда 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-разрядный код операции:


1101 kkkk kkkk kkkk

Булевы выражения регистра статуса (SREG)

I T H S V N Z C
- - - - - - - -


Пример:

         rcall routine ; Вызвать подпрограмму
         . . .
routine: push  r14     ; Сохранить r14 в стеке
         . . .
         pop   r14     ; Восстановить r14
         ret           ; Вернуться из подпрограммы

Слов: 1 (2 байта)

Циклов: 3