Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Кальным величинам обеспечивается адресными выражениями вида





[BP-i]. Если подпрограмме не нужно место под локальные величи-

ны, тогда третью из ≪входных≫ команд следует опустить.

Выход из подпрограммы реализуется следующими командами:

MOV SP,BP,-очистить стек от локальных величин

POP ВР /восстановить старое значение ВР

RET 2xk /возврат из подпрограммы и очистка стека от

;параметров (считаем, что они занимают

/ 2xk байтов).

Первая из этих ≪выходных≫ команд заносит в регистр SP адрес

Той ячейки стека, где хранится старое значение регистра ВР, т. е.

Происходит очистка стека от локальных величин (если их не было,

То данную команду надо опустить). Вторая команда восстанавливает

В ВР это старое значение, одновременно удаляя его из стека. В этот

Момент состояние стека будет таким же, как и перед входом в под-

Программу. Третья команда считывает из стека адрес возврата (в ре-

зультате чего SP ≪опускается≫ на 2 байта), затем добавляет к SP чис-

Ло, которое должно равняться числу байтов, занимаемых всеми па-

Раметрами подпрограммы, и затем осуществляет переход по адресу

Возврата. В этот момент состояние стека будет таким же, каким оно

Было перед обращением к подпрограмме.

Здесь описана универсальная схема организации работы под-

Программ. В конкретных случаях могут использоваться более про-

Стые схемы. Например, параметры можно передавать не через стек,

А через регистры, место под локальные величины можно отводить

Не в стеке, а в сегменте данных и т. п.

Процедуры в ассемблере. При составлении и вызове подпро-

Грамм необходимо следить за тем, чтобы команды CALL и RET дей-

Ствовали согласованно —были одновременно близкими или даль-

Ними. В MASM эта проблема снимается, если подпрограмму опи-

сать как процедуру. Процедуры имеют следующий вид:

имя_процедуры PROC [NEAR или FAR]







Date: 2015-11-13; view: 374; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию