Как стать программистом Как устроен компьютер. Что такое программа. Как написать свою программу. И многое другое узнаете вы из этой книги. Получить бесплатно! |
Инструкция RET
Лучшие книги по Ассемблеру
Сделал подборку не новых, но проверенных книг по программированию на языке ассемблера. Если вы также как и я любите погружаться на низкий уровень, в те закоулки мира программирования, куда не всем путь открыт, то посмотрите. Возможно, что-то вам понравится. Подробнее... |
Инструкция RET в Ассемблере выполняет возврат из ближней процедуры. У этой команды обычно нет операндов, хотя в качестве операнда может быть чётное число (только непосредственное значение).
Если не заморачиваться о таких вещах как ближний/дальний вызов, то можно сказать, что эта команда выполняет выход из программы или процедуры.
Алгоритм работы команды RET:
- Получить из стека IP (адрес возврата в программу из процедуры).
- Если имеется операнд, то SP = SP + операнд. Операнд необязателен, но если он есть, то после того, как будет считан адрес возврата, из стека будет удалено столько байтов, сколько указано в операнде. Это требуется, если при вызове процедуры ей передавались параметры через стек.
Никакие флаги при выполнении команды не изменяются.
ВНИМАНИЕ!
В зависимости от того, как была описана процедура, которую завершает команда RET, ассемблер может заменить команду RET на команду RETN или RETF.
Для лучшего понимания смысла и алгоритма работы инструкции RET необходимо разобраться с тем, как вызываются и выполняются процедуры в ассемблере. Но это другая отдельная тема. А сейчас небольшой пример использования:
.model tiny .code ORG 100h start: CALL MyProc ;Вызвать процедуру ADD AX, 1 RET ;Вернуться в операционную систему MyProc PROC ;Объявление процедуры. MOV AX, 1 RET ;Вернуться в программу. MyProc ENDP END start
Ну и напоследок о происхождении названия команды.
RET - это сокращение от слова RETURN (возврат).
Подписаться на Дзен-канал
Вступить в группу "Основы программирования" Подписаться на рассылки по программированию |
Первые шаги в программирование
Главный вопрос начинающего программиста – с чего начать? Вроде бы есть желание, но иногда «не знаешь, как начать думать, чтобы до такого додуматься». У человека, который никогда не имел дело с информационными технологиями, даже простые вопросы могут вызвать большие трудности и отнять много времени на решение. Подробнее... |