Случайное
Старые записи

Исходный модуль программы

Исходный модуль программыДля каждого исходного модуля программы программист должен знать, какие имена у него будут входными и какие внешними. Программист сообщает транслятору об именах связи с помощью операторов ENTRY, EXTRN, WXTRN и констант типа V. Транслятор передает эту информацию редактору, размещая ее в формируемый для каждого модуля словарь внешних имен.

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

Внешнее имя можно указать в адресной константе типа V. В этом случае это внешнее имя не нужно определять оператором EXTRN. Обычно адресная константа типа V используется для организации внешних переходов. Внешнее имя, использованное в адресной константе типа V, не должно использоваться как операнд в других операторах ассемблера.

Операторы EXTRN и константы типа V определяют так называемые сильные внешние имена, для которых редактор связей выполняет автоматический просмотр библиотеки, содержащей объектные модули. С помощью оператора WXTRN можно определить «слабое» внешнее имя, для которого автоматический просмотр библиотеки не выполняется. В остальном «слабые» внешние имена ничем не отличаются от «сильных». Правила записи операторов EXTRN и WXTRN совпадают.

Интересные статьи

Copyright © 2022. All Rights Reserved.