Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Команда 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!