Программирование на Ассемблере для персональных компьютеров. Садовой Н.Н - 51 стр.

UptoLike

Составители: 

51
6. Подпрограммы
Подпрограммы позволяют сократить объём текста программы,
применять модульный принцип построения программ, использовать
одни и те же подпрограммы в различных программах, что значительно
сокращает время создания программ и уменьшает время отладки.
6.1. Структура подпрограммы
Описание подпрограммы в языке ассемблер имеет следующую
структуру:
<имя процедуры> proc <тип процедуры>
. . .
операторы тела подпрограммы
. . .
ret [<выражение>]
<имя процедуры> endp
<тип процедуры> - определяет тип перехода: near (близкий), far (даль-
ний). Если тип не задан, по умолчанию принимается near. Тип перехода
near показывает, что тело процедуры описано в
том же сегменте, что и её
вызов. Тип перехода far обеспечивает вызов процедуры из других сегмен-
тов, с другим значением регистра CS. Такие процедуры обычно использу-
ются как отдельные объектные модули или в составе библиотек.
ret [<выражение>] - выполняет возврат из процедуры в вызывающую
программу. В зависимости от типа процедуры, эта команда восстанавли
-
вает из стека значение IP (ближний вызов) или CS:IP (дальний вызов). Эта
команда не обязана быть последней по тексту процедуры, но является по-
следней по порядку выполнения. Значение <выражение> указывает раз-
мер стека в байтах, восстанавливаемого при возврате из процедуры. Вос-
                          6. Подпрограммы
       Подпрограммы позволяют сократить объём текста программы,
    применять модульный принцип построения программ, использовать
    одни и те же подпрограммы в различных программах, что значительно
    сокращает время создания программ и уменьшает время отладки.

                       6.1. Структура подпрограммы

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

         <имя процедуры> proc <тип процедуры>

          ...
   операторы тела подпрограммы
          ...
   ret [<выражение>]
   <имя процедуры> endp
   <тип процедуры> - определяет тип перехода: near (близкий), far (даль-
ний). Если тип не задан, по умолчанию принимается near. Тип перехода
near показывает, что тело процедуры описано в том же сегменте, что и её
вызов. Тип перехода far обеспечивает вызов процедуры из других сегмен-
тов, с другим значением регистра CS. Такие процедуры обычно использу-
ются как отдельные объектные модули или в составе библиотек.

   ret [<выражение>] - выполняет возврат из процедуры в вызывающую
программу. В зависимости от типа процедуры, эта команда восстанавли-
вает из стека значение IP (ближний вызов) или CS:IP (дальний вызов). Эта
команда не обязана быть последней по тексту процедуры, но является по-
следней по порядку выполнения. Значение <выражение> указывает раз-
мер стека в байтах, восстанавливаемого при возврате из процедуры. Вос-
                                                                    51