![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
6.1.1 Структура подпрограммы. Вызов подпрограммы
Подпрограммы позволяют сократить объём текста программы, применять модульный принцип построения программ, использовать одни и те же подпрограммы в различных программах, что значительно сокращает время создания программ и уменьшает время отладки.
Описание подпрограммы в языке ассемблер имеет структуру, представленную в листинге 6.1.
Листинг 6.1 Структура подпрограммы
<имя процедуры> proc <тип процедуры>
...
Операторы тела подпрограммы
...
ret [<выражение>]
<имя процедуры> endp
<тип процедуры> - определяет тип перехода: near (близкий), far (дальний). Если тип не задан, по умолчанию принимается near. Тип перехода near показывает, что тело процедуры описано в том же сегменте, что и её вызов. Тип перехода far обеспечивает вызов процедуры из других сегментов, с другим значением регистра CS. Такие процедуры обычно используются как отдельные объектные модули или в составе библиотек.
ret [<выражение>] - выполняет возврат из процедуры в вызывающую программу. В зависимости от типа процедуры, эта команда восстанавливает из стека значение IP (ближний вызов) или CS:IP (дальний вызов). Эта команда не обязана быть последней по тексту процедуры, но является последней по порядку выполнения. Значение <выражение> указывает размер стека в байтах, восстанавливаемого при возврате из процедуры. Восстановление стека необходимо производить при передаче параметров процедуры через стек. Так как работа со стеком выполняется словами, значение <выражение> всегда должно быть кратным двум.
Дата публикования: 2014-11-28; Прочитано: 276 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!