Инструкция RET


Лучшие книги по Ассемблеру Лучшие книги по Ассемблеру

Сделал подборку не новых, но проверенных книг по программированию на языке ассемблера. Если вы также как и я любите погружаться на низкий уровень, в те закоулки мира программирования, куда не всем путь открыт, то посмотрите. Возможно, что-то вам понравится. Подробнее...

Инструкция RET в Ассемблере выполняет возврат из ближней процедуры. У этой команды обычно нет операндов, хотя в качестве операнда может быть чётное число (только непосредственное значение).

Если не заморачиваться о таких вещах как ближний/дальний вызов, то можно сказать, что эта команда выполняет выход из программы или процедуры.

Алгоритм работы команды RET:

  1. Получить из стека IP (адрес возврата в программу из процедуры).
  2. Если имеется операнд, то 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 (возврат).



Первые шаги в программирование Первые шаги в программирование

Главный вопрос начинающего программиста – с чего начать? Вроде бы есть желание, но иногда «не знаешь, как начать думать, чтобы до такого додуматься». У человека, который никогда не имел дело с информационными технологиями, даже простые вопросы могут вызвать большие трудности и отнять много времени на решение. Подробнее...

Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su