Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SP_MET_1.DOC
Скачиваний:
4
Добавлен:
25.08.2019
Размер:
596 Кб
Скачать
☆

3.3.7. Директивы управления программным счетчиком

Программный счетчик — внутренняя переменная ассемблера, равная смещению текущей команды или данных относительно начала сегмента. Для преобразования меток в адреса используется именно значение этого счетчика. Значением счетчика можно управлять с помощью следующих директив.

org выражение

Устанавливает значение программного счетчика. Директива ORG с операндом 100h обязательно используется при написании файлов типа СОМ, которые загружаются в память после блока параметров размером l00h.

even

Директива EVEN делает текущее значение счетчика кратным двум, вставляя команду NOP, если оно было нечетным. Это увеличивает ско­рость работы программы, так как для доступа к слову, начинающемуся с нечетного адреса, процессор должен считать два слова из памяти. Если при описании сегмента не использовалось выравнивание типа BYTE, счетчик в начале сегмента всегда четный.

align значение

Округляет значение программного счетчика до кратного указанному значению. Значение может быть любым четным числом Если счетчик не кратен указанному числу, эта директива вставляет необходимое количество команд NOР.

3.3.8. Глобальные объявления

public язык метка. . .

Метка, объявленная директивой PUBLIC, становится доступной для других модулей программы. Так, можно объявлять имена процедур, переменные и константы, определенные директивой EQU. Необязатель­ный операнд языка (С, PASCAL, BASIC, FORTRAN, SYSCALL или STDCALL) указывает, что метка будет вызываться из модуля, написан­ного на соответствующем языке, и, при необходимости, изменяет ее (на­пример, добавляет _ перед первым символом метки).

comm расст язык метка:тип. . . ; для TASM

comm язык расст метка:тип. . . ; для MASM

Директива СОММ описывает общую переменную. Такие перемен­ные доступны из всех модулей, и их размещение в программе определя­ется на этапе компоновки. Обязательные аргументы директивы СОММ — метка (собственно имя общей переменной) и тип (BYTE, WORD, DWORD, FWORD, QWORD, TBYTE или имя структуры). Нео­бязательный операнд «расстояние» (NEAR или FAR) указывает, нахо­дится ли переменная в группе сегментов DGROUP (ближняя перемен­ная, для доступа достаточно смещения) или вне этих сегментов (дальняя переменная, для доступа потребуется сегментный адрес). Для моделей памяти TINY, SMALL и COMPACT по умолчанию значение этого операнда принимается за NEAR. И наконец, операнд «язык» дей­ствует аналогично такому же операнду для PUBLIC.

extrn язык метка:тип

Описывает метку, определенную в другом модуле (с помощью PUBLIC). Тип (BYTE, WORD, DWORD, FWORD, QWORD, TBYTE, имя структуры, FAR, NEAR, ABS) должен соответствовать типу метки в том модуле, в котором она была определена (тип ABS используется для констант из других модулей, определенных директивой EQU). Необязательный операнд языка действует так же, как и для директивы PUBLIC.

global язык метка:тип

Директива GLOBAL действует, как PUBLIC и EXTRN одновременно. Если указанная метка находится в этом же модуле, она становится доступной для других модулей, как если бы выполнилась директива PUBLIC. Если метка не описана — она считается внешней и выполняется действие, аналогичное действию директивы EXTRN.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]