Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Команды обращения к процедурам



Команда RCALL

Синтаксис: RCALL n

где -2048 < n < 2048 (-2 K < n < 2 K)

Команда относительного вызова подпрограммы, расположенной через n+1 команду от текущей позиции. Переход можно осуществить не более чем на 2048 команд в обе стороны.

Пример:

rcall Init; Вызвать процедуру Init, находящуюся по;адресу, расположенному в пределах двух;килобайт от текущей позиции.

Команда ICALL

Синтаксис: ICALL

Команда косвенного вызова процедуры через регистровую пару Z. Под регистровой парой Z понимается 30-й и 31-й регистры.

Команда CALL

Синтаксис: CALL addr

где 0 < addr < 4 000 000 (0 < addr < 4 M)

Команда непосредственного вызова процедуры по её стартовому адресу. Позиция вызова заносится в стек. Важно:

1. Процедура обязательно должна быть завершена командой RET.

2. Стек имеет конечный объем, потому в случае рекуррентных процедур нужно тщательно планировать вычислительный процесс, избегая переполнения стека.

Пример:

call my_proc; Вызов процедуры, находящейся по

; адресу с меткой «my_proc».

Команда RET

Синтаксис: RET

Команда возврата из процедуры к позиции, записанной в стек при вызове.

Команда RETI

Синтаксис: RET

Команда возврата из глобального прерывания к позиции, записанной в стек при возникновении прерывания. Устанавливает или сбрасывает флаг I регистра флагов.





Дата публикования: 2014-11-18; Прочитано: 345 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...