Вторая форма команды возврата RET n производит удаление из стека n байт. Она необходима в том случае, когда при вызове процедуры передавались параметры (содержимое поля счетчика двойных слов WC в шлюзе вызова не равно нулю). Передача управления на программы обработки прерывания (ловушки) всегда производится без уменьшения уровня привилегий. Соответственно, возврат из них всегда должен быть без увеличения уровня прерывания. Попытки возврата с увеличением уровня привилегий для этих случаев считаются ошибкой. Переходы при вызове процедур, прерывания или ловушки могут использовать механизм передач управления или механизм смены задач. При возврате из процедуры всегда используется тот же механизм перехода. Возврат из подпрограмм на основную программу по командам RET, RET n и IRET не использует шлюзы. Если процедура вызова использовала механизм передачи управления, то обработчиком перехода является кодовый сегмент. Выполняемые при возврате действия аналогичны действиям при вызове, но в обратном порядке:
|