Assembler для начинающих



              

EXTRN и PUBLIC


    Редактор связей не может, однако, выполнить все, о чем говорилось
    выше, самостоятельно.  Ассемблер должен получить от программиста
    информацию о подпрограммах, относящихся к другому программному
    модулю.  Это ввполняется с помощью оператора PUBLIC, извещающего
    ассемблер о том, что данное символическое имя доступно другим
    программам.  Кроме того, программист указывает ассмеблеру, какие из
    символических имен является внешними для данного программного
    модуля.  В языке ассемблера это реализуется оператором EXTRN,
    который объявляет соответствующее имя внешним для текущего
    ассемблирования, чтобы оно могло быть правильно обработано.
    Ассемблер помечает данную команду таким образом, чтобы редактор
    связей мог впоследствии найти ее и вставить туда правильное
    значение адреса.
 
      Оператор EXTRN выполняет две фуекции. Во-первых, он сообщает
    ассемблеру, что указанное символическое имя является внешним для
    текущего ассемблирования. Конечно, на этом этапе ассемблер мог бы
    считать, что любое имя, не идентифицированное им в процессе
    ассемблирования, является внешним. Однако, если когда-нибудь вы
    ошиблись в указании имен, то ассемблер решит, что имеется в виду
    внешнее имя, и не выдает сообщения об ошибке. Это отложит индикацию
    ошибки до этапа редактирования связей. Для большинства
    программистов это слишком поздно, особенно, если речь идет о чем-то
    простом, вроде описки. Таким образом, ассемблер индицирует ошибку в
    случае любого не определенного им символического имени.
 
      Вторая функция оператора EXTRN состоит в том, что он указывает
    ассемблеру тип соответствующего символического имени. Так как
    ассемблирование является очень формальной процедурой, то ассемблер
    должен знать, что представляет из себя каждый символ. Это позволяет
    ему генерировать правильные команды. В случае данных оператор EXTRN
    может указывать на байт, двойное слово или другой типовой элемент.



Содержание  Назад  Вперед