Команды RET и RETF
Рубрика: Архитектура PC
(Команды CPU)
3970
Опубликовано: 08.05.2017
Команды 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 |
Комментарии (0)