Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Топ:
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Интересное:
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Дисциплины:
2017-09-01 | 244 |
5.00
из
|
Заказать работу |
|
|
Этот вариант передачи аргументов предполагает, что вызывающая и вызываемая программы условились использовать некоторую область памяти как общую. Транслятор предоставляет специальное средство для организации такой области памяти. Ранее мы разбирали директивы сегментации и их атрибуты. Один из них — атрибут комбинирования сегментов. Наличие этого атрибута указывает компоновщику TLINK, как нужно комбинировать сегменты, имеющие одно имя. Значение common означает, что все сегменты, имеющие одинаковое имя в объединяемых модулях, будут располагаться компоновщиком, начиная с одного адреса оперативной памяти. Это значит, что они будут просто перекрываться в памяти и, следовательно, совместно использовать выделенную память.
Недостатком этого способа в реальном режиме работы микропроцессора является отсутствие средств защиты данных от разрушения, так как нельзя проконтролировать соблюдение правил доступа к этим данным. В защищенном режиме ситуация выглядит лучше. Этот режим рассмотрим позже.
Рассмотрим листинг 14.4 с примером использования общей области памяти для обмена данными между модулями. На этот раз программа состоит уже из двух независимых модулей, находящихся в разных файлах, и поэтому они представляют собой отдельные единицы трансляции. Функционально эти модули реализуют несложную задачу, которая заключается в том, что вызываемые процедуры формируют строку символов и передают ее через общую область, а вызывающая их процедура main выводит строку на экран.
Листинг 14.4. Передача аргументов через общую область памяти (модуль 1);
Вызываемые процедуры находятся в другом модуле (листинг 14.5).
|
Листинг 14.5. Передача аргументов через общую область памяти (модуль 2)
Обратите внимание, что совсем не обязательно, чтобы данные в сегментах common имели одинаковые имена. Главное, и за этим нужно следить с особой тщательностью, — структура общих сегментов. Она должна быть абсолютно идентична во всех модулях данной программы, использующих обмен данными через общую память.
Так как в данном примере программа состоит уже из двух модулей, то наверняка возникнет вопрос, как собрать ее в один исполняемый модуль. Можно предложить следующую последовательность шагов:
1. Выполнить трансляцию модуля prg14_4.asm и получить объектный модуль prg14_4.obj.
2. Выполнить трансляцию модуля prg14_5.asm и получить объектный модуль prg14_5.obj.
3. Скомпоновать программу утилитой TLINK командной строкой вида
tlink /v prg14_4.obj + prg14_5.obj
В итоге будет создан исполняемый модуль prg14_4.exe. Вы можете исследовать этот модуль, используя отладчик, но имейте в виду следующее. В окне MODULE вы увидите только исходный текст программы prg14_4.asm. Для того чтобы войти по команде call в вызываемую процедуру, необходимо нажимать клавишу F7. Обработка этой команды приведет к открытию второго окна, в котором будет выведен текст вызванной процедуры.
|
|
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!