Студопедия
Главная страница | Контакты | Случайная страница

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

Вызов подпрограмм

Читайте также:
  1. Внешние угрозы и вызовы национальной безопасности России.
  2. Вспомогательный алгоритм (подпрограмма, процедура).
  3. Вызов бригад скорой помощи и службы спасения на место ДТП
  4. Вызов справочной системы
  5. Вызов функций
  6. Вызовы глобализации
  7. Допрос, его виды. Порядок вызова и производства допроса на предварительном следствии. Особенности допроса отдельных лиц.
  8. Назначение функции. Описание и вызов функции. Отличие процедуры от функции.
  9. Описание и вызов процедур и функций

В простейшем случае (в ассемблерах) подпрограмма представляет собой последовательность команд (операторов), отдельную от основной части программы и имеющую в конце специальную команду выхода из подпрограммы. Обычно подпрограмма также имеет имя, по которому её можно вызвать, хотя ряд языков программирования допускает использование и неименованных подпрограмм. В языках высокого уровня описание подпрограммы обычно состоит, по меньшей мере, из двух частей: заголовка и тела. Заголовок подпрограммы описывает её имя и, возможно, параметры, то есть содержит информацию, необходимую для вызова подпрограммы. Тело — набор операторов, который будет выполнен всякий раз, когда подпрограмма будет вызвана. Вызов подпрограммы выполняется с помощью команды вызова, включающей в себя имя подпрограммы.

Практически в любой программе, независимо от ее содержания, встречаются участки, которые требуется выполнять (возможно, с небольшими изменениями) несколько раз по ходу программы. Такие повторяющиеся участки целесообразно выделить из общей программы, оформить в виде подпрограмм и обращаться к ним каждый раз, когда в основной программе возникает необходимость их выполнения.

В любом случае вызов подпрограммы осуществляется командой call. Подпрограмма должна завершаться командой ret, служащей для возврата управления в ту точку, откуда подпрограмма была вызвана.

Команда вызова подпрограммы call может использоваться в 4 разновидностях. Вызов может быть:

прямым ближним (в пределах текущего сегмента команд);

прямым дальним (в другой сегмент команд);

косвенным ближним (в пределах текущего сегмента команд через ячейку с адресом перехода);

косвенным дальним (в другой сегмент команд через ячейку с адресом

перехода).

Подпрограммы на asm вызывается командой call при этом выполн. сл. действия: -1-в стеке сохр. адрес сл. после call команды (для мал. моделей только регистр IP, большие – CS: IP).-2-В регистр CS: IP для больших моделей или IP загр. адрес точки входа в подпр.-3- посл. командой подпрогр. должна быть команда ret она загр. из стека адрес сл. после call команды. my_proc PROC – имя процедуры---my_proc ENDP. Для передачи параметров исп. 2 способа: - через регистр; - через стек; Также можно передавать копию аргумента или адрес аргумента. Команда CALL имеет 4 модификации: - вызов прямой ближний(в пределах текущего программного сегмента – near ptr): call near ptr proc1;- вызов косвенный ближний(word ptr): mov bx, offset proc1 ---call [bx];- прямой дальний вызов(вызов процедуры, расположенной в другом сегменте кода – far ptr): call far ptr proc1; - вызов косвенный дальний(dword ptr): adr dd proc1--- call DS: adr (или call dword ptr adr).

 




Дата добавления: 2015-02-16; просмотров: 88 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав