На главную
Подписка
Новости










Главная / MS-DOS / MS-DOS. РУКОВОДСТВО РАЗРАБОТЧИКА / Глава 2 / Передача по адресу Сделать домашней страницей Добавить в избранное Написать писмо

НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Передача по адресу

При передаче по адресу вызываемая программа получает только адрес данных. Доступ к данным осуществляется путем использования этого адреса. Имеется несколько непосредственных преимуществ данного способа. Первое состоит в том, что если данные не расположены в различных сегментах, то все адреса могут содержаться в одном 16-битовом значении, являющимся соглашением по использованию регистра или стека. Второе преимущество заключается в том, что программа становится более общей, поскольку указание другого адреса создает новый набор данных. Третье преимущество состоит в том, что вызываемая программа может непосредственно манипулировать данными для возврата значения в то же самое место вызывающей программы, которое содержало первоначальное значение. Если данные, подлежащие передаче, не размещены в памяти (т.е. являются непосредственными данными), иногда могут возникнуть проблемы. В этих случаях (или, если обнаружено их простое несоответствие для передачи всех требуемых адресов в стек) может быть использован тип смешанного параметра: блок аргументов.


Блок аргументов или параметров является специальной формой передачи по адресу. В этом случае требуемые аргументы содержатся в непрерывном участке памяти. Однако, в отличие от передачи через общую область памяти, вызывающая процедура не имеет полных сведений об этом блоке. При вызове процедуры в качестве параметра ей передается адрес этого блока. Хотя может оказаться неудобным размещать все требуемые аргументы в блоке, но это дает возможность избежать необходимости размещения всех этих значений в стеке. Если блок уже существует для других целей, то передача параметров через блок аргументов имеет еще больший смысл.


НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Hosted by uCoz