Команды RET и RETF - это команды возврата из подпрограмы, вызванной через команду CALL. Выбирает из стека адрес возврата и передает на него управление. Кроме того, с помощью необязательного параметра позволяет сдвинуть указатель стека для освобождения места, выделенного под параметры процедуры.

 

Команда RET
Синтаксис: RET op1
Операнды: op1 - i16
Назначение: Ближний возврат из процедуры
Процессор: 8086+
Флаги: Не изменяются
Комментарий: Команда RET читает из стека адрес возврата и заносит его в регистр IP, передавая таким образом управление. Необязательный числовой параметр команды RET определяет число байтов, на которые должен быть увеличен регистр стека после извлечения из него адреса возврата.
Если команда используется в 32-разрядном режиме адресации, то из стека читается 32-битный адрес и заносится в регистр EIP. Кроме того в 32-разрядном режиме числовой параметр определяет количество не байт, а слов, извлекаемых из стека.
Ограничения: Нет
Примеры:
ret	4
Команда RETF
Синтаксис: RETF op1
Операнды: op1 - i16
Назначение: Дальний возврат из процедуры
Процессор: 8086+
Флаги: Не изменяются
Комментарий: Команда RETF аналогична команде RET, за исключением того, что из стека извлекается дальний адрес возврата: первым извлекается значение сегмента, затем - смещение в сегменте.
Если команда используется в 32-разрядном режиме адресации, то из стека читается 16-битное значение сегмента и 32-битное смещение.
Ограничения: Нет
Примеры:
retf