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

Возврат результата из процедуры

Инвертор включается и отключается | Как припаять сломанную ногу процессора | Замена чипсета на материнской плате из песочницы | Как определить неисправность материнской платы в домашних условиях. | Как заменить конденсаторы на материнской плате | Перепайка и замена конденсаторов на плате | Ещё о командах ассемблера. | Главная > Язык ассемблера > Процедуры и функции в ассемблере | Объединение процедур, расположенных в разных модулях | Организация интерфейса с процедурой |


Читайте также:
  1. B) Эквифинальность: различные факторы приводят к схожим результатам.
  2. II. Выполнение процедуры
  3. II. Выполнение процедуры
  4. II. Выполнение процедуры
  5. II. Выполнение процедуры
  6. II. Выполнение процедуры
  7. II. Выполнение процедуры

В общем случае программист располагает тремя вариантами возврата значений из процедуры:

§ С использованием регистров. Ограничения здесь те же, что и при передаче данных, — это небольшое количество доступных регистров и их фиксированный размер. Данный способ является наиболее быстрым, поэтому его есть смысл использовать для организации критичных по времени вызова процедур.

§ С использованием общей области памяти. Этот способ удобен при возврате большого количества данных, но требует внимательности в определении областей данных и подробного документирования для устранения неоднозначностей.

§ С использованием стека. Здесь, подобно передаче аргументов через стек, также нужно использовать регистр ebр. При этом возможны следующие варианты:
- использование для возвращаемых аргументов тех же ячеек в стеке, которые применялись для передачи аргументов в процедуру. То есть предполагается замещение ставших ненужными входных аргументов выходными данными;
- предварительное помещение в стек наряду с передаваемыми аргументами фиктивных аргументов с целью резервирования места для возвращаемого значения. При использовании этого варианта процедура, конечно же, не должна пытаться очистить стек командой ret. Эту операцию придется делать в вызывающей программе, например командой pop.



Дата добавления: 2015-07-16; просмотров: 51 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Способы передачи аргументов в процедуру| Автор: xrnd | Рубрика: Учебный курс | 17-10-2010 | Распечатать запись

mybiblioteka.su - 2015-2024 год. (0.006 сек.)