Часть 3. Директивы
Ниже в алфавитном порядке описаны все директивы TASM.
Директива .186 Режим MASM
Разрешает ассемблирование инструкций процессора 80186.
Директива .286 Режим MASM
Разрешает ассемблирование непривилегированных инструкций
процессора 80286 (реальный режим) и инструкций арифметического
сопроцессора 80287.
Директива .286C Режим MASM
Разрешает ассемблирование непривилегированных инструкций
процессора 80286 (реальный режим) и инструкций арифметического
сопроцессора 80287.
Директива .286P Режим MASM
Разрешает ассемблирование всех инструкций процессора 80286
(включая защищенный режим) и инструкций арифметического сопроцес-
сора 80287.
Директива .287 Режим MASM
Разрешает ассемблирование всех инструкций арифметического
сопроцессора 80287.
Директива .386 Режим MASM
Разрешает ассемблирование непривилегированных инструкций
процессора 80386 (реальный режим) и инструкций арифметического
сопроцессора 80387.
Директива .386C Режим MASM
Разрешает ассемблирование непривилегированных инструкций
процессора 80386 (реальный режим) и инструкций арифметического
сопроцессора 80387.
Директива .386P Режим MASM
Разрешает ассемблирование всех инструкций процессора 80386
(включая защищенный режим) и инструкций арифметического сопроцес-
сора 80387.
Директива .387 Режим MASM
Разрешает ассемблирование всех инструкций арифметического
сопроцессора 80387.
Директива .486 Режим MASM
Разрешает ассемблирование непривилегированных инструкций
процессора i486 (реальный режим).
Директива .486C Режим MASM
Разрешает ассемблирование непривилегированных инструкций
процессора i486 (реальный режим).
Директива .486P Режим MASM
Разрешает ассемблирование всех инструкций процессора i486
(включая защищенный режим).
Директива .8086 Режим MASM
Разрешает ассемблирование инструкций защищенного режима для
процессора 80486.
Директива .8087 Режим MASM
Разрешает ассемблирование инструкций арифметического сопро-
цессора. Этот режим инструкций сопроцессора используется Турбо
Ассемблером по умолчанию.
Директива : Режимы Ideal, MASM
имя:
Определяет для кода ближнюю метку с указанным именем.
Директива = Режим Ideal, MASM
имя = выражение
Определяет или переопределяет числовое присваивание.
Директива ALIGN Режим Ideal, MASM
ALIGN граница
Округляет счетчик инструкций до адреса, который представляет
собой степень двойки (2, 4, 8, .).
Директива .ALPHA Режим MASM
Задает упорядочивание сегментов по алфавиту. Ту же функцию
выполняет параметр командной строки /a.
Директива ARG Режим Ideal, MASM
ARG аргумент[,аргумент].[=идентификатор]
[RETURNS аргумент[,аргумент]]
Заносит аргументы в стек для процедур. Каждому аргументу
присваивается положительное смещение от регистра BP. При этом
предполагается, что адрес возврата процедуры и регистр BP вызыва-
ющей программы уже занесены в стек. Каждый аргумент имеет следую-
щий синтаксис:
имя_аргумента[[счетчик_1]][:[отладочный_размер][тип][:счетчик_2]]
Необязательный "отладочный_размер" имеет следующий синтаксис:
[тип]PTR
Директива ASSUME Режимы Ideal, MASM
ASSUME сегмент:имя[,сегмент:имя].
ASSUME сегментный_регистр:NOTHING
ASSUME NOTHING
Задает сегментный регистр, который будет использоваться для
вычисления действующего адреса для всех меток и переменных, опре-
деленных для сегмента или группы сегментов с указанным именем.
Ключевое слово NOTHING отменяет связь между указанным сегментным
регистром и именем сегмента или группы.
Директива %BI Режимы Ideal, MASM
%BIN размер
Задает размер поля объектного кода в файле листинга (в пози-
циях).
Директива CALL Режимы Ideal, MASM
CALL <указатель_экземпляра>METHOD[<имя_объекта>:]
<имя_метода>{USES[{сегм_регистр:}регистр_смещения}
{<параметры_расширенного_вызова}
Вызывает процедуру метода.
Директива CATSTR Режимы Ideal, MASM51
имя CATSTR строка[,строка].
Выполняет конкатенацию нескольких строк в одну строку с ука-
занным именем.
Директива .CODE Режим MASM
.CODE[имя]
При использовании с директивой .MODEL определяет начало сег-
мента кода. Если вы задали среднюю или большую модель памяти, то
за директивой .CODE может следовать необязательное имя, которое
указывает имя сегмента.
Директива CODESEG Режимы Ideal, MASM
CODESEG[имя]
При использовании с директивой .MODEL определяет начало сег-
мента кода. Если вы задали среднюю или большую модель памяти, то
за директивой .CODESEG может следовать необязательное имя, кото-
рое указывает имя сегмента.
Директива COMM Режимы Ideal, MASM
COMM определение[,определение]
Определяет общую переменную. Каждое определение описывает
идентификатор и имеет следующий формат:
[расстояние][язык]имя_идентификатора[[счетчик_1]]:тип[:счетчик_2]
где "расстояние" - это NEAR или FAR (если оно не задается, то по
умолчанию соответствуют используемой модели памяти для данных),
"язык" - это C, PASCAL, BASIC, FORTRAN или NOLANGUAGE (язык не
определен) и задает применение к "имени_идентификатора" соглаше-
ний, специфических для языка. "Имя_идентификатора" - это общая
переменная (или переменные, разделенные запятыми). Если в качест-
ве расстояния указывается NEAR, то компоновщик для вычисления об-
щего размера массива использует значение "счетчик_1". Если
"расстояние" - это FAR, то компоновщик для указания того, сколько
имеется элементов размера "счетчик_1" * на основной размер, опре-
деляемый типом, использует значение "счетчик_2". "Типом" может
быть BYTE, WORD, DATAPTR, CODEPTR, DWORD, FWORD, PWORD, QWORD,
TBYTE или имя структуры. "Счетчик_2" задает, сколько элементов
определяет данная общая переменная. По умолчанию значения "счет-
чик_1" и "счетчик_2" равны 1.
Директива COMMENT Режим MASM
COMMENT разделитель[текст]
[текст]
разделитель[текст]
Начинает комментарий, состоящий из нескольких строк. Ограни-
чителем является первый ненулевой символ, следующий за COMMENT.
Директива %COND Режимы Ideal, MASM
Выводит в листинге все операторы в условном блоке. Этот ре-
жим используется в Турбо Ассемблере по умолчанию.
Директива CONST Режимы Ideal, MASM
-
Определяет начало сегмента данных-констант.
Директива .CREF Режим MASM
Позволяет собирать для всех идентификаторов, начиная от дан-
ной точки и далее в исходном файле, информацию о перекрестных
ссылках. Директива .CREF имеет обратный эффект по сравнению с ди-
рективами %XCREF или .XCREF, которые запрещают сбор информации.
Директива %CREF Режимы Ideal, MASM
Позволяет собирать для всех идентификаторов, начиная от дан-
ной точки и далее в исходном файле, информацию о перекрестных
ссылках. Директива .CREF имеет обратный эффект по сравнению с ди-
рективами %XCREF или .XCREF, которые запрещают сбор информации.
Директива %CREFALL Режимы Ideal, MASM
Приводит к тому, что в листинге перекрестных ссылок будут
выводиться все идентификаторы, которые встречаются далее в исход-
ном коде. В Турбо Ассемблере этот режим используется по умолча-
нию. Директива %CREFALL изменяет действие предыдущих директив
%CREFREF или %CREFUREF, которые запрещают вывод в листинге иден-
тификаторов с имеющими или отсутствующими на них ссылками, на об-
ратное.
Директива %CREFREF Режимы Ideal, MASM
Запрещает вывод в листинге перекрестных ссылок идентификато-
ров, ссылки на которые отсутствуют.
Директива %CREFUREF Режимы Ideal, MASM
Запрещает вывод в листинге перекрестных ссылок идентификато-
ров, ссылки на которые отсутствуют.
Директива %CREFUREF Режимы Ideal, MASM
Выводи в листинг перекрестных ссылок только те идентификато-
ры, на которые нет ссылок.
Директива %CTLS Режимы Ideal, MASM
Приводит к тому, что в листинге будут присутствовать управ-
ляющие директивы (такие, как %LIST, %INCL и т.д.).
Директива .DATA Режим MASM
Определяет в вашем модуле начало инициализированного сегмен-
та данных. Для определения модели памяти вы должны сначала
использовать директиву .MODEL. Сегмент данных помещается в группу
с именем DGROUP, которая содержит также сегменты, определенные с
помощью директив .STACK, .CONST и .DATA?.
Директива DATASEG Режим Ideal
Определяет в вашем модуле начало инициализированного сегмен-
та данных. Для определения модели памяти вы должны сначала
использовать директиву .MODEL. Сегмент данных помещается в группу
с именем DGROUP, которая содержит также сегменты, определенные с
помощью директив .STACK, .CONST и .DATA?.
Директива .DATA? Режим MASM
Определяет в вашем модуле начало неинициализированного сег-
мента данных. Для определения модели памяти вы должны сначала
использовать директиву .MODEL. Сегмент данных помещается в группу
с именем DGROUP, которая содержит также сегменты, определенные с
помощью директив .STACK, .CONST и .DATA.
Директива DB Режимы Ideal, MASM
[имя] DB выражение[,выражение]
Выделяет и инициализирует байт памяти. "Имя" представляет
собой идентификатор, который вы будете затем использовать для
ссылки на данные. "Выражение" может представлять собой выраже-
ние-константу, вопросительный знак, строку символов или выражение
с операцией DUP.
Операция DD Режимы Ideal, MASM
[имя] DD[тип PTR][ выражение[,выражение]
Выделяет и инициализирует 4 байта памяти (двойное слово).
"Имя" - это идентификатор, который вы будете впоследствии исполь-
зовать для ссылки на данные. "Тип", за которым следует PTR, до-
бавляет к определяемому идентификатору информацию для отладки,
благодаря чему Турбо отладчик сможет правильно выводить ее содер-
жимое. Тип может быть следующим: BYTE, WORD, DATAPTR, CODEPTR,
DWORD, FWORD, PWORD, QWORD, TBYTE, SHORT, NEAR, FAR или имя
структуры. "Выражение" может быть выражением-константой, вопроси-
тельным знаком или выражением с DUP.
Директива %DEPTH Режим Ideal, MASM
%DEPTH
Устанавливает размер поля глубины в файле листинга в соот-
ветствии со значением "длина". По умолчанию это значение равно
одному столбцу.
Директива DF Режимы Ideal, MASM
[имя] DF[тип PTR] выражение[,выражение].
Выделяет и инициализирует 6 байт памяти (дальний указатель
типа far). "Имя" - это идентификатор, который вы будете позднее
использовать для ссылки на данные. "Тип", указываемый после PTR,
добавляет к определяемому идентификатору информацию для отладки,
благодаря которой Турбо отладчик сможет правильно выводить ее со-
держимое. Тип может быть следующим: BYTE, WORD, DATAPTR, CODEPTR,
DWORD, FWORD, PWORD, QWORD, TBYTE, SHORT, NEAR, FAR или именем
структуры. "Выражение" может быть выражением-константой, знаком
вопроса, адресным выражением или выражением с DUP.
Директива DISPLAY Режимы Ideal, MASM
DISPLAY "текст"
Выводит заключенную в кавычки строку (текст) на экран.
Директива DOSSEG Режимы Ideal, MASM
Разрешает переопределение сегментов DOS во время компоновки.
Используйте данную директиву только при разработке автономных
программ на Ассемблере. Укажите директиву DOSSEG один раз в ис-
ходном основном модуле, где определяется начальный адрес програм-
мы.
Директива DP Режимы Ideal, MASM
[имя] DP[тип PTR] выражение[,выражение].
Выделяет и инициализирует 6 байт памяти (дальний указатель
типа far). "Имя" - это идентификатор, который вы будете позднее
использовать для ссылки на данные. "Тип", указываемый после PTR,
добавляет к определяемому идентификатору информацию для отладки,
благодаря которой Турбо отладчик сможет правильно выводить ее со-
держимое. Тип может быть следующим: BYTE, WORD, DATAPTR, CODEPTR,
DWORD, FWORD, PWORD, QWORD, TBYTE, SHORT, NEAR, FAR или именем
структуры. "Выражение" может быть выражением-константой, знаком
вопроса, адресным выражением или выражением с DUP.
Директива DQ Режимы Ideal, MASM
[имя] DQ выражение[,выражение].
Выделяет и инициализирует 8 байт памяти (четверное слово).
"Имя" представляет собой идентификатор, который вы будете позднее
использовать для ссылки на данные. "Выражение" может быть выраже-
нием-константой, 64-разрядным числом с плавающей точкой, знаком
вопроса или выражением с DUP.
Директива DT Режимы Ideal, MASM
[имя] DT выражение[,выражение].
Выделяет и инициализирует 10 байт памяти (четверное слово).
"Имя" представляет собой идентификатор, который вы будете позднее
использовать для ссылки на данные. "Выражение" может быть выра-
жением-константой, 64-разрядным числом с плавающей точкой, знаком
вопроса или выражением с DUP.
Директива DW Режимы Ideal, MASM
[имя] DP[тип PTR] выражение[,выражение].
Выделяет и инициализирует 2 байта памяти (слово) "Имя" - это
идентификатор, который вы будете позднее использовать для ссылки
на данные. Тип, указываемый после PTR, добавляет к определяемому
идентификатору информацию для отладки, благодаря которой Турбо
отладчик сможет правильно выводить ее содержимое. Тип может быть
следующим: BYTE, WORD, DATAPTR, CODEPTR, DWORD, FWORD, PWORD,
QWORD, TBYTE, SHORT, NEAR, FAR или именем структуры. "Выражение"
может быть выражением-константой, знаком вопроса, адресным выра-
жением или выражением с DUP.
Директива ELSE Режимы Ideal, MASM
IF условие
операторы_1
[ELSE
операторы_2]
ENDIF
Начинает альтернативный блок условного ассемблирования. Опе-
раторы, определяемые в ветви ELSE (операторы_2), ассемблируются,
если вычисление условия дает False.
Директива ELSEIF Режимы Ideal, MASM
ELSEIF
IF условие_1
операторы_1
[ELSEIF условие_2
операторы_2]
ENDIF
Начинает вложенный блок условного ассемблирования, если "ус-
ловие_2" принимает значение True. Поддерживаются также некоторые
другие формы ELSEIF: ELSEIF1, ELSEIF2, ELSEIFB, ELSEIFDEF,
ELSEIFDIF, ELSEIFDIFI, ELSEIFE, ELSEIFE, ELSEIFIDN, ELSEIFIDNI,
ELSEIFNB и ELSEIFNDEF.
Директива EMUL Режимы Ideal, MASM
Приводит к тому, что все последующие инструкции сопроцессора
будут генерироваться, как эмулируемые инструкции, а не как реаль-
ные инструкции. При выполнении программы у вас должен быть уста-
новлен пакет программной эмуляции инструкций с плавающей точкой,
в противном случае эти инструкции не будут корректно работать.
Директива END Режимы Ideal, MASM
END [начальный_адрес]
Отмечает начало исходного файла. "Начальный_адрес" - это ид-
ентификатор или выражение, которое задает адрес вашей программы
в начале выполнения. Турбо Ассемблер игнорирует любой текст, ко-
торый встречается после директивы END.
Директива ENDIF Режимы Ideal, MASM
ENDIF
IF условие
операторы
ENDIF
Отмечает конец блока условного ассемблирования в одной из
директив IFхххх.
Директива ENDM Режимы Ideal, MASM
Определяет конец блока повторения или макроопределения.
Директива ENDP Режимы Ideal, MASM
ENDP [имя_программы]
[имя_программы] ENDP
Отмечает конец процедуры. Если указывается имя программы,
оно должно соответствовать имени, которое задано в директиве PROC
в начале определения процедуры.
Директива ENDS Режимы Ideal, MASM
ENDS [имя_сегмента | имя_структуры]
[имя_сегмента | имя_структуры]ENDS
Отмечает конец текущего сегмента, структуры или объединения.
Если вы указываете необязательное имя, то оно должно совпадать с
именем, заданным в соответствующей директиве SEGMENT, STRUC или
UNION.
Директива ENUM Режимы Ideal, MASM
-
ENUM имя[переменная_перечисления[,переменная_перечисления.]]
имя ENUM я[переменная_перечисления[,переменная_перечисления.]]
Описывает перечислимый тип данных.
Директива EQU Режимы Ideal, MASM
имя EQU выражение
Определяет "имя", как строку, псевдоним или числовое присва-
ивание, содержащее результат вычисления выражения.
Директива .ERR Режим MASM
.ERR <строка>
Приводит к тому, что при обнаружении данной директиве в ис-
ходном коде в данной строке возникает ошибка, и в качестве сооб-
щения об ошибке выводится необязательная строка.
Директива ERR Режим MASM
ERR <строка>
Приводит к тому, что при обнаружении данной директиве в ис-
ходном коде в данной строке возникает ошибка, и в качестве сооб-
щения об ошибке выводится необязательная строка.
Директива .ERR1 Режим MASM
.ERR1 <строка>
Приводит к тому, что на первом проходе ассемблирования воз-
никает ошибка, и в качестве сообщения об ошибке выводится необя-
зательная строка.
Директива .ERR2 Режим MASM
.ERR2 <строка>
Если разрешен многопроходный режим (который управляется
директивой командной строки /m), то на втором проходе ассемблиро-
вания возникает ошибка, и в качестве сообщения об ошибке выводит-
ся необязательная строка.
Директива .ERRB Режим MASM
.ERRB аргумент <строка>
Приводит к ошибке, если аргумент пуст, и в качестве
сообщения об ошибке выводится необязательная строка.
Директива .ERRDEF Режим MASM
.ERRDEF идентификатор <строка>
Приводит к ошибке, если идентификатор определен, и в качест-
ве сообщения об ошибке выводится необязательная строка.
Директива .ERRDIF Режим MASM
.ERRDIF аргумент_1,аргумент_2 <строка>
Приводит к ошибке, если аргументы различны. Регистр символов
при сравнении учитывается, и в качестве сообщения об ошибке выво-
дится необязательная строка.
Директива .ERRDIFI Режим MASM
.ERRDIFI аргумент_1,аргумент_2 <строка>
Приводит к ошибке, если аргументы различны. Регистр символов
при сравнении не учитывается, и в качестве сообщения об ошибке
выводится необязательная строка.
Директива .ERRE Режим MASM
.ERRE выражение <строка>
Приводит к ошибке, если при вычислении выражения получается
значение False (0), a в качестве сообщения об ошибке выводится
необязательная строка.
Директива .ERRIDN Режим MASM
.ERRIDN аргумент_1,аргумент_2 <строка>
Приводит к ошибке, если аргументы совпадают. Регистр букв
при сравнении не учитывается, и в качестве сообщения об ошибке
выводится необязательная строка.
Директива ERRIF Режимы Ideal,MASM
ERRIF выражение <строка>
Приводит к ошибке, если выражение дает значение True (не
равно нулю), и в качестве сообщения об ошибке выводится необяза-
тельная строка.
Директива ERRIF1 Режимы Ideal, MASM
ERRIF1 <строка>
Приводит к ошибке на первом проходе ассемблирования, и в ка-
честве сообщения об ошибке выводится необязательная строка.
Директива ERRIF2 Режимы Ideal, MASM
ERRIF2 <строка>
Если разрешен многопроходный режим (который управляется па-
раметром командной строки /m), то приводит к ошибке на втором
проходе ассемблирования, и в качестве сообщения об ошибке выво-
дится необязательная строка.
Директива ERRIFB Режимы Ideal, MASM
ERRIFB аргумент <строка>
Приводит к ошибке, если аргумент пуст, и в качестве
сообщения об ошибке выводится необязательная строка.
Директива ERRIFDEF Режимы Ideal, MASM
ERRIFDEF идентификатор <строка>
Приводит к ошибке, если идентификатор определен, и в качест-
ве сообщения об ошибке выводится необязательная строка.
Директива ERRIFDIF Режимы Ideal, MASM
ERRIFDIF аргумент_1,аргумент_2 <строка>
Приводит к ошибке, если аргументы различны. Регистр символов
при сравнении учитывается. В качестве сообщения об ошибке выво-
дится необязательная строка.
Директива ERRIFDIFI Режимы Ideal, MASM
ERRIFDIFI аргумент_1,аргумент_2 <строка>
Приводит к ошибке, если аргументы различны. Регистр символов
при сравнении не учитывается. В качестве сообщения об ошибке вы-
водится необязательная строка.
Директива ERRIFE Режимы Ideal, MASM
ERRIFDIF выражение <строка>
Приводит к ошибке, если аргументы выражение дает значение
False (0). В качестве сообщения об ошибке выводится необязатель-
ная строка.
Директива ERRIFDIDN Режимы Ideal, MASM
ERRIFDIDN аргумент_1,аргумент_2 <строка>
Приводит к ошибке, если аргументы совпадают. Регистр симво-
лов при сравнении учитывается. В качестве сообщения об ошибке вы-
водится необязательная строка.
Директива ERRIFDIDNI Режимы Ideal, MASM
ERRIFDIDNI аргумент_1,аргумент_2 <строка>
Приводит к ошибке, если аргументы совпадают. Регистр симво-
лов при сравнении не учитывается. В качестве сообщения об ошибке
выводится необязательная строка.
Директива ERRIFNB Режимы Ideal, MASM
ERRIFNB аргумент <строка>
Приводит к ошибке, если аргумент не пуст, и в качестве сооб-
щения об ошибке выводится необязательная строка.
Директива ERRIFNDEF Режимы Ideal, MASM
ERRIFNDEF идентификатор <строка>
Приводит к ошибке, если идентификатор не определен, и в ка-
честве сообщения об ошибке выводится необязательная строка.
Директива .ERRIFNB Режим MASM
.ERRIFNB аргумент <строка>
Приводит к ошибке, если аргумент не пуст, и в качестве сооб-
щения об ошибке выводится необязательная строка.
Директива .ERRIFDEF Режим MASM
.ERRNDEF идентификатор <строка>
Приводит к ошибке, если идентификатор не определен, и в
качестве сообщения об ошибке выводится необязательная строка.
Директива .ERRNZ Режим MASM
.ERRNZ выражение <строка>
Приводит к ошибке, если выражение имеет значение True (не
равно нулю). В качестве сообщения об ошибке выводится необяза-
тельная строка.
Директива .EVEN Режимы Ideal, MASM
Округляет счетчик адреса до следующего четного адреса.
Директива EVENDATA Режимы Ideal, MASM
Округляет счетчик адреса до следующего нечетного адреса.
Директива .EXIT Режим MASM
.EXIT [возвращаемое_значение]
Генерирует код завершения. Используется только в режиме
MASM. Эквивалентна директиве EXITCODE.
Директива EXITCODE Режимы Ideal, MASM
EXITCODE [возвращаемое_значение]
Генерирует код завершения. Вы можете использовать эту дирек-
тиву в любой желаемой точке выхода. "Возвращаемое_значение" - это
число, которое должно возвращаться операционной системе. Если вы
не задаете это значение, то возвращается значение, содержащееся в
регистре AX.
Директива EXITM Режимы Ideal, MASM
Завершает расширение макрокоманды или блока повторения и во-
звращает управление оператору, следующему за макрокомандой или
блоком повторения.
Директива EXTRN Режимы Ideal, MASM
EXTRN определение[,определение].
Указывает, что идентификатор определен в другом модуле. Оп-
ределение описывает идентификатор и имеет следующий формат:
[язык] имя[счетчик_1]:тип[:счетчик_2]
где "язык" задает, что к идентификатору с указанным именем должны
применяться соглашения заданного языка (C, PASCAL, BASIC,
FORTRAN, ASSEMBLER или PROLOG). "Имя" - это идентификатор, кото-
рый определен в другом модуле и за которым может следовать "счет-
чик_1", множитель элемента массива, значение которого по умолча-
нию равно 1. "Тип" должен соответствовать типу идентификатора,
указанному при его определении, и может быть следующим: NEAR,
FAR, PROC, BYTE, WORD, DWORD, DATAPTR, CODEPTR, FWORD, PWORD,
QWORD, TBYTE, ABS или именем структуры. Значение "счетчика_2" за-
дает, сколько элементов определяет данный внешний идентификатор.
Если оно не задается, то по умолчанию равно 1.
Директива .FARDATA Режим MASM
.FARDATA [имя_сегмента]
Определяет начало инициализированного сегмента данных даль-
него типа (far). "Имя_сегмента", если оно присутствует,
переопределяет имя сегмента, используемое по умолчанию.
Директива FARDATA Режим MASM, Ideal
FARDATA [имя_сегмента]
Определяет начало инициализированного сегмента данных даль-
него типа (far). "Имя_сегмента", если оно присутствует,
переопределяет имя сегмента, используемое по умолчанию.
Директива .FARDATA? Режим MASM
.FARDATA? [имя_сегмента]
Определяет начало неинициализированного сегмента данных
дальнего типа (far). "Имя_сегмента", если оно присутствует, пере-
определяет имя сегмента, используемое по умолчанию.
Директива GLOBAL Режимы Ideal, MASM
GLOBAL определение[,определение]
Используется для определения глобального идентификатора
(символического имени) и действует, как комбинация директив EXTRN
и PUBLIC. "Определение" описывает идентификатор и имеет следующий
формат:
[язык] имя[[счетчик_1]] :тип[:счетчик_2]
где "язык" задает, что к идентификатору с указанным именем должны
применяться соглашения заданного языка (C, PASCAL, BASIC,
FORTRAN, ASSEMBLER или PROLOG). Если "имя" определено в текущем
исходном файле, оно становится общедоступным, как при использова-
нии директивы PUBLIC. В противном случае оно описывает внешний
идентификатор типа "тип", как при использовании директивы EXTRN.
За именем может следовать необязательный "счетчик_1", коэффициент
элемента массива, значение которого по умолчанию равно 1. "Тип"
должен соответствовать типу идентификатора, указанному при его
определении, и может быть следующим: NEAR, FAR, PROC, BYTE, WORD,
DWORD, DATAPTR, CODEPTR, FWORD, PWORD, QWORD, TBYTE, ABS или име-
нем структуры. Значение "счетчика_2" определяет, сколько элемен-
тов определяет данный внешний идентификатор. Если оно не задает-
ся, то по умолчанию равно 1.
Директива GOTO Режимы Ideal, MASM
GOTO целевой_идентификатор:
Указывает Турбо Ассемблеру, что выполнение нужно возобновить
с заданного идентификатора. Директива GOTO завершает любой услов-
ный блок, в котором она встречается.
Директива GROUP Режимы Ideal, MASM
GROUP имя_группы имя_сегмента[,имя_сегмента].
имя_группы GROUP имя_сегмента[,имя_сегмента].
Связывает "имя_группы" с одним или более именами сегментов,
так что смещения для всех меток и переменных, определенных в дан-
ных сегментах, будут вычисляться относительно начала группы "имя_
группы". "Именем_сегмента" может быть определенное ранее с по-
мощью директивы SEGMENT имя сегмента или выражение, начинающееся
с SEG. В режиме MASM при доступе к идентификатору в сегменте, ко-
торый является частью группы, вы должны использовать переопреде-
ление группы. В режиме Ideal[ Турбо Ассемблер автоматически гене-
рирует для каждого идентификатора переопределения группы.
Директива IDEAL Режимы Ideal, MASM
Устанавливает режим ассемблирования Ideal. Данный режим
будет действовать, пока он не будет отменен директивами MASM и
QUIRKS.
Директива IF Режимы Ideal, MASM
IF выражение
операторы_true
[ELSE
операторы_false]
ENDIF
Начинает условный блок, который, если "выражение" имеет зна-
чение True (истинно) приводит к ассемблированию операторов "опе-
раторы_true" вплоть до необязательной директивы ELSE.
Директива IF1 Режимы Ideal, MASM
IF1
операторы_true
[ELSE
операторы_false]
ENDIF
Начинает условный блок, который, если текущим является первый
проход ассемблирования, приводит к ассемблированию операторов
"операторы_true" вплоть до необязательной директивы ELSE.
Директива IF2 Режимы Ideal, MASM
IF2
операторы_true
[ELSE
операторы_false]
ENDIF
Начинает условный блок, который, если разрешен многопроходный
режим (им можно управлять с помощью параметра командной строки
/m) и текущим является второй проход ассемблирования, приводит к
ассемблированию операторов "операторы_true" вплоть до необяза-
тельной директивы ELSE.
Директива IFDEF Режимы Ideal, MASM
IFDEF идентификатор
операторы_true
[ELSE
операторы_false]
ENDIF
Начинает условный блок, который, если "идентификатор" опре-
делен, приводит к ассемблированию операторов "операторы_true"
вплоть до необязательной директивы ELSE.
Директива IFDIFI Режимы Ideal, MASM
IFDIFI аргумент_1,аргумент_2
операторы_true
[ELSE
операторы_false]
ENDIF
Начинает условный блок, который, если аргументы различны,
приводит к ассемблированию операторов "операторы_true" вплоть до
необязательной директивы ELSE. При сравнении аргументов регистр
букв не учитывается.
Директива IFE Режимы Ideal, MASM
IFDE выражение
операторы_true
[ELSE
операторы_false]
ENDIF
Начинает условный блок, который, если выражение имеет значе-
ние False (ложно), приводит к ассемблированию операторов "опера-
торы_true" вплоть до необязательной директивы ELSE.
Директива IFIDN Режимы Ideal, MASM
IFIDN аргумент_1,аргумент_2
операторы_true
[ELSE
операторы_false]
ENDIF
Начинает условный блок, который, если аргументы совпадают,
приводит к ассемблированию операторов "операторы_true" вплоть до
необязательной директивы ELSE. При сравнении аргументов регистр
букв учитывается.
Директива IFIDNI Режимы Ideal, MASM
IFIDNI аргумент_1,аргумент_2
операторы_true
[ELSE
операторы_false]
ENDIF
Начинает условный блок, который, если аргументы совпадают,
приводит к ассемблированию операторов "операторы_true" вплоть до
необязательной директивы ELSE. При сравнении аргументов регистр
букв не учитывается.
Директива IFNB Режимы Ideal, MASM
----------------------------------------------------------------
IFDNB аргумент
операторы_true
[ELSE
операторы_false]
ENDIF
Начинает условный блок, который, если аргумент не пуст, при-
водит к ассемблированию операторов "операторы_true" вплоть до не-
обязательной директивы ELSE. При сравнении аргументов регистр
букв не учитывается.
Директива IFNDEF Режимы Ideal, MASM
IFNDEF идентификатор
операторы_true
[ELSE
операторы_false]
ENDIF
Начинает условный блок, который, если идентификатор не опре-
делен, приводит к ассемблированию операторов "операторы_true"
вплоть до необязательной директивы ELSE. При сравнении аргументов
регистр букв не учитывается.
Директива %INCTL Режимы Ideal, MASM
Разрешает листинг включаемых файлов. Этот режим устанавлива-
ется по умолчанию.
Директива INCLUDE Режимы Ideal, MASM
INCLUDE имя_файла или
INCLUDE "имя_файла"
Включает исходный код из файла с указанным именем в текущей
позиции ассемблируемого модуля.
Директива INCLUDELIB Режимы Ideal, MASM
INCLUDELIB имя_файла или
INCLUDELIB "имя_файла"
Приводит к тому, что компоновщик во время компоновки будет
включать библиотечный файл с указанным именем. Если расширение
имени файла не указывается, то предполагается расширение .LIB.
Директива INSTR Режимы Ideal, MASM51
имя INSTR [начало,]строка_1,строка_2
"Имя" присваивается позиции первого вхождения "строки_2" в
"строку_1". Поиск начинается с позиции "начало" (или с позиции 1,
если "начало" не задано). Если "строка_2" нигде в "строке_1" не
встречается, то "имя" устанавливается в ноль.
Директива IRP Режимы Ideal, MASM
IRP параметр, аргумент_1[,аргумент_2].
операторы
ENDM
Повторяет блок операторов со строковой подстановкой. Для
каждого имеющегося аргумента ассемблирование выполняется только
один раз. Аргументами может быть любой текст: символы, строки,
числа и т.д. При каждом ассемблировании блока для каждого вхожде-
ния "параметра" в "операторах" подставляется следующий аргумент в
списке.
Директива IRPC Режимы Ideal, MASM
IRPC параметр, строка
операторы
ENDM
Повторяет блок операторов со символьной подстановкой. Для
каждого имеющегося символа в строке ассемблирование выполняется
только один раз. При каждом ассемблировании блока для каждого
вхождения "параметра" в "операторах" подставляется следующий сим-
вол в строке.
Директива JMP Режимы Ideal, MASM
JMP <указатель_экземпляра>METHOD{<имя_объекта>:}
<имя_метода>{USES{сегментный_регистр:}смещение}
Действует аналогично CALL.METHOD, но генерирует вместо ин-
струкции CALL инструкцию JMP и очищает стек при наличие в стеке
локальных переменных (LOCAL) или переменных в стеке, заданных с
помощью USES.
Директива JUMPS Режимы Ideal, MASM
Приводит к тому, что Турбо Ассемблер ищет по целевому адресу
инструкцию условного перехода, и если она не может достичь целе-
вого смещения с помощью короткого перехода, генерирует условный
переход (через обычную инструкцию перехода) с противоположным
смыслом, что позволяет достичь целевого адреса. Данная директива
имеет тот же эффект, что и использование параметра командной
строки /JJUMPS.
Директива LABEL Режимы Ideal, MASM
имя LABEL тип
LABEL имя тип
Задает для имени идентификатора указанный тип. "Имя" не
должно быть определенным в исходном файле ранее. Тип может быть
следующим: NEAR, FAR, PROC, BYTE, WORD, DWORD, DATAPTR, CODEPTR,
FWORD, PWORD, QWORD, TBYTE или именем структуры.
Директива .LALL Режим MASM
Разрешает листинг всех макрорасширений.
Директива LARGESTACK Режим MASM
Указывает, что стек 32-битовый.
Директива .LFCOND Режим MASM
Выводит в листинге все операторы в условных блоках.
Директива %LINUM Режимы Ideal, MASM
%LINUM размер
Задает размер поля номеров строк в листинге (в позициях).
По умолчанию это значение равно 4.
Директива %LIST Режимы Ideal, MASM
---------------------------------------------------------------
Выводит в листинге строки исходного кода. Этот режим уста-
навливается по умолчанию.
Директива .LIST Режим MASM
Выводит в листинге строки исходного кода. Этот режим уста-
навливается по умолчанию.
Директива LOCAL Режимы Ideal, MASM
В макрокомандах:
LOCAL идентификатор[,идентификатор].
В процедурах:
LOCAL элемент[,элемент].[=идентификатор]
Определяет локальные переменные в макрокомандах и процеду-
рах. Внутри макроопределения директива LOCAL определяет временные
имена идентификаторов, которые при каждом расширении макрокоманды
заменяются уникальными именами идентификаторов. Директива LOCAL
должна указываться перед всеми другими операторами в макроопреде-
лении.
В процедуре директива LOCAL определяет имена, которые дос-
тупны в стеке через отрицательные смещения относительно регистра
BP. Если вы заканчиваете список аргументов знаком равенства (=) и
идентификаторов, то этому идентификатору будет присваиваться
полный объем блока локальный идентификаторов в стеке в байтах.
Каждый "элемент" имеет следующий синтаксис (внутренние квадратные
скобки - это литералы):
имя_идентиф[[счетчик_1]][:[отладочный_размер][:тип][:счетчик_2]]
где "тип" - это тип данных аргумента. Он может быть следующим:
BYTE, WORD, DATAPTR, CODEPTR, DWORD, FWORD, PWORD, QWORD, TBYTE,
SHORT, NEAR, FAR или именем структуры. Если тип не задан, то под-
разумевается тип WORD.
"Счетчик_2" задает, сколько элементов данного типа определя-
ет идентификатор. Если это значение не задается, то по умолчанию
оно равно 1.
"Счетчик_2" - это множитель элементов массива. Объем памяти,
выделенной для идентификатора, представляет собой произведение
"счетчика_2" на длину, заданную полем "тип", и на "счетчик_1". По
умолчанию, если значение "счетчика_1" не задается, оно равно 1.
Необязательный отладочный размер имеет следующий синтаксис:
[тип]PTR
Директива LOCALS Режимы Ideal, MASM
LOCALS [префикс]
Разрешает локальные идентификаторы, имена которых начинаются
с двух символов @@ или двухсимвольного префикса (если он задан).
В режиме Ideal локальные идентификаторы разрешаются автоматически.
Директива MACRO Режимы Ideal, MASM
MACRO имя[параметр[,параметр].]
имя MACRO [параметр[,параметр].]
Определяет макрокоманду, которая будет впоследствии расши-
ряться при обнаружении имени "имя". Вместо "параметра" при вызове
макрокоманды вы можете указывать (в данной позиции) значение фак-
тического аргумента.
Директива %MACS Режимы Ideal, MASM
Разрешает листинг макрорасширений.
Директива MASM Режимы Ideal, MASM
Задает режим ассемблирования MASM. Этот режим используется
Турбо Ассемблером по умолчанию.
Директива MASM51 Режимы Ideal, MASM
Разрешает ассемблирование некоторых улучшений MASM 5.1.
Директива MODEL Режимы Ideal, MASM
MODEL [модификатор_модели] модель_памяти[имя_модуля]
[,[модификатор_языка]язык][,модификатор_модели]
Задает модель памяти для упрощенных директив определения
сегментов. "Модификатор_модели" может указываться перед "моделью
памяти или в конце оператора и может (если задается) представлять
собой NEARSTACK или FARSTACK. "Модель_памяти" может быть TINY,
SMALL, MEDIUM, COMPACT или TCHUGE. "Имя_модуля используется в
больших моделях для описания имени сегмента кода. "Модифика-
тор_языка" - это WINDOWS, ODDNEAR, ODDFAR или NORMAL. Он задает
генерацию записи процедуры MSWindows и код выхода. "Язык" опреде-
ляет, из какого языка будет выполняться вызов для доступа к про-
цедурам в данном модуле. Это может быть C, PASCAL, BASIC,
FORTRAN, PROLOG или NOLANGUAGE (язык не задан). При использовании
директив PROC и ENDP Турбо Ассемблер автоматически генерирует со-
ответствующие запись процедуры и код выхода. "Язык" также указы-
вает Турбо Ассемблеру, какие соглашения об именах должны исполь-
зоваться для общедоступных и внешних идентификаторов и в каком
порядке аргументы процедуры заносились в стек вызывающим модулем.
Кроме того, для удаления аргументов из стека перед возвратом ге-
нерируется соответствующая форма инструкции RET.
Директива .MODEL Режим MASM
.MODEL [модификатор_модели] модель_памяти[имя_модуля]
[,[модификатор_языка]язык][,модификатор_модели]
См. директиву MODEL.
Директива MULTERRS Режимы Ideal, MASM
Разрешает выводить в одной строке исходного кода несколько
сообщений об ошибках.
Директива NAME Режимы Ideal, MASM
NAME имя_модуля
Задает имя модуля объектного файла. В режиме MASM эта дирек-
тива не действует, она работает только в режиме Ideal.
Директива %NEWPAGE Режимы Ideal, MASM
Начинает в файле листинга новую страницу.
Директива %NOCONDS Режимы Ideal, MASM
Запрещает включение в файл листинга операторов условных бло-
ков.
Директива %NNOCREF Режимы Ideal, MASM
%NOCREF[идентификатор,.]
Запрещает сбор информации для листинга перекрестных ссылок
(CREF). Если вы укажете одно или более имен, то перекрестные
ссылки будут запрещены только для данных идентификаторов.
Директива %NOCTLS Режимы Ideal, MASM
Запрещает помещение в файл листинга управляющих директив.
Турбо Ассемблер использует этот режим по умолчанию.
Директива NOEMUL Режимы Ideal, MASM
Приводит к тому, что все последующие инструкции арифмети-
ческого сопроцессора будут генерироваться, как реальные инструк-
ции, а не эмулируемые. При выполнении вашей программы должен
присутствовать сопроцессор 80х87, иначе эти инструкции не будут
правильно работать. В Турбо Ассемблере этот режим ассемблирования
с плавающей точкой используется автоматически.
Директива %NOINCL Режимы Ideal, MASM
Запрещает листинг исходного кода включаемых файлов.
Директива NOJUMPS Режимы Ideal, MASM
Запрещает удлинение условных переходов, разрешенное по дирек-
тиве JUMPS. Этот режим иcпользуется в Турбо Ассемблере по умол-
чанию.
Директива %NOLIST Режимы Ideal, MASM
Запрещает вывод в файл листинга.
Директива NOLOCALS Режимы Ideal, MASM
Запрещает локальные идентификаторы, разрешенные по директиве
LOCALS. Для режима MASM Турбо Ассемблера это используется по
умолчанию.
Директива %NOMACS Режимы Ideal, MASM
Выводит только те макрорасширения, которые генерируют код.
Этот режим вывода в файл листинга макрокоманд используется Турбо
Ассемблером по умолчанию.
Директива NOMASM51 Режимы Ideal, MASM
Запрещает ассемблирование определенных улучшений MAWSM 5.1,
разрешенных по директиве MASM51. В Турбо Ассемблере данный режим
используется по умолчанию.
Директива NOMULTERRS Режимы Ideal, MASM
Разрешает вывод на одной строке исходного кода только одного
сообщения об ошибке. Этот режим вывода сообщений об ошибках ис-
пользуется в Турбо Ассемблере по умолчанию.
Директива NOSMART Режимы Ideal, MASM
Запрещает оптимизации кода, при которых генерируется код,
отличный от MASM.
Директива %NOSYMS Режимы Ideal, MASM
Запрещает вывод в файл листинга таблицы идентификаторов.
Директива %NOTRUNCS Режимы Ideal, MASM
Предотвращает усечение полей, размер который превышает длину
соответствующего поля в файле листинга.
Директива NOWARN Режимы Ideal, MASM
NOWARN [класс_предупреждений]
Запрещает вывод предупреждающих сообщений с идентификатором
предупреждений "класс_предупреждений", или всех предупреждающих
сообщений, если "класс_предупреждений" не задан.
Директива ORG Режимы Ideal, MASM
ORG выражение
Устанавливает счетчик инструкций в текущем сегменте в соот-
ветствии с адресом, задаваемым "выражением".
Директива %OUT Режим MASM
%OUT текст
Выводит текст на экран.
Директива P186 Режимы Ideal, MASM
Разрешает ассемблирования инструкций процессора 80186.
Директива P286 Режимы Ideal, MASM
Разрешает ассемблирование всех инструкций процессора 80286
(включая защищенный режим) и инструкций арифметического сопроцес-
сора 80287.
Директива P286N Режимы Ideal, MASM
Разрешает ассемблирование непривилегированных (реальный ре-
жим) инструкций процессора 80286 и инструкций арифметического
сопроцессора 80287.
Директива P286P Режимы Ideal, MASM
Разрешает ассемблирование всех (включая защищенный режим)
инструкций процессора 80286 и инструкций арифметического сопро-
цессора 80287.
Директива P287 Режимы Ideal, MASM
Разрешает ассемблирование инструкций арифметического сопро-
цессора 80287.
Директива P286 Режимы Ideal, MASM
Разрешает ассемблирование всех (включая защищенный режим)
инструкций процессора 386 и инструкций сопроцессора 387.
Директива P386N Режимы Ideal, MASM
Разрешает ассемблирование непривилегированных (реальный ре-
жим) инструкций процессора 386 и инструкций арифметического соп-
роцессора 80387.
Директива P386P Режимы Ideal, MASM
Разрешает ассемблирование всех (включая защищенный режим)
инструкций процессора 386 и инструкций сопроцессора 387.
Директива P387 Режимы Ideal, MASM
Разрешает ассемблирование инструкций арифметического сопро-
цессора 387.
Директива P486 Режимы Ideal, MASM
Разрешает ассемблирование всех инструкций процессора i486
(включая защищенный режим).
Директива P486N Режимы Ideal, MASM
Разрешает ассемблирование непривилегированных инструкций
процессора i486 (реальный режим).
Директива P8086 Режимы Ideal, MASM
Разрешает ассемблирование только инструкций процессора 8086.
В Турбо Ассемблере этот режим используется по умолчанию.
Директива P8087 Режимы Ideal, MASM
Разрешает ассемблирование только инструкций арифметического
сопроцессора 8087. В Турбо Ассемблере этот режим назначается по
умолчанию.
Директива PAGE Режим MASM
PAGE[строки][,столбцы]
Устанавливает высоту и ширину страниц листинга, начинает но-
вую страницу. См. описание директивы %PAGESIZE.
Директива %PAGESIZE Режимы Ideal, MASM
%PAGESIZE[строки][,столбцы]
Устанавливает высоту и ширину страниц листинга, начинает но-
вую страницу. Параметр "строки" задает число строк, которые будут
выводиться на страницу листинга (от 10 до 255), параметр "столб-
цы" задает ширину страницы в позициях (от 59 до 255). Если пара-
метры опущены, их текущие значения остаются без изменения. Если
за директивой %PAGESIZE указывается знак +, то начинается новая
страница, номер раздела увеличивается, а номер страницы начинает-
ся с 1. Директива %PAGESIZE без аргументов вызывает переход на
новую страницы, при этом номер раздела не изменяется.
Директива %PCNT Режимы Ideal, MASM
%PCNT размер
Устанавливает длину поля "сегмен:смещение" в файле листинга
в соответствии с параметром "размер". По умолчанию это значение
равно 4 для 16-разрядных сегментов и 8 для 32-разрядных.
Директива PNO87 Режимы Ideal, MASM
Предотвращает ассемблирование инструкций числового сопроцес-
сора (реальных или эмулируемых).
Директива %POPLCTL Режимы Ideal, MASM
Сбрасывает параметры управления листингом в значения, кото-
рые они имели, когда была дана последняя директива %PUSHLCTL.
Директива PROC Режимы Ideal, MASM
PROC[модификатор_языка][язык] имя [расстояние]
[USES элементы,][аргумент[,аргумент].]
[RETURNS аргумент[,аргумент].]
имя PROC [модификатор_языка][язык][расстояние]
[USES элементы,][аргумент[,аргумент].]
[RETURNS аргумент [,аргумент].]
Определяет начало процедуры с указанным именем. "Модификатор
_языка" - это WINDOWS или NOWINDOWS. Он задает генерацию кода
входа/выхода MSWindows. "Язык" определяет, из какого языка выпол-
няется вызов для доступа к данной процедуре: C, PASCAL, BASIC,
FORTRAN, PROLOG или NOLANGUAGE. Этим определяются соглашения по
именам идентификатором, порядок аргументов в стеке и то, останут-
ся ли аргументы в стеке при возврате управления из процедуры.
"Расстояние" - это NEAR или FAR. Оно определяет тип инструкции
RET, которая будет ассемблироваться в конце процедуры. "Элемен-
ты" - это список регистров и/или элементов данных, состоящих из
одной лексемы, которые должны заноситься в стек при входе в про-
цедуру и извлекаться из стека при выходе из нее. "Аргумент" опи-
сывает аргумент, с которым вызывается процедура. Каждый аргумент
имеет следующий синтаксис:
имя_аргумента[[счетчик_1]][[:расстояние][PTR]тип][:счетчик_2]
где "имя_аргумента" - это имя, которое вы будете использовать для
ссылки на данный аргумент в процедуре. "Расстояние" - это NEAR
или FAR, оно показывает, что аргумент является указателем задан-
ного размера. "Тип" - это тип данных аргумента, оно может предс-
тавлять собой BYTE, WORD, DWORD, FWORD, PWORD, QWORD, TBYTE или
имя структуры. Если тип не задается, то подразумевается тип WORD.
"Счетчик_1" и "счетчик_2" - это число элементов указанного типа.
PTR сообщает Турбо Ассемблеру, что нужно включить информацию для
отладки. Благодаря этому Турбо отладчик будет знать, что аргумент
является указателем на элемент данных. Если использовать PTR без
"расстояния", то размер указателя будет основываться на текущей
модели памяти и размере адреса сегмента. RETURNS задает один или
более аргументов, которые нежелательно извлекать из стека при
возврате управления из процедуры.
Директива PUBLIC Режимы Ideal, MASM
PUBLIC [язык] идентификатор [,[язык] идентификатор].
Описывает идентификатор, как доступный из других модулей.
Если задан "язык" (C, PASCAL, BASIC, FORTRAN, ASSEMBLER или
PROLOG), то идентификатор становится доступным с учетом примене-
ния к нему соглашений по именам, принятым в указанном языке.
Директива PUBLICDDL Режимы Ideal, MASM
PUBLICDDL [язык] идентификатор [,[язык] идентификатор].
Описывает идентификаторы, как динамические точки входа из
других модулей для компоновки. "Идентификатор" (PROC или метка
программы, имя переменной, или числовая константа, определенная с
помощью EQU) становится доступной для других программ под управ-
лением OS/2. Если задан язык (C, PASCAL, BASIC, FORTRAN,
ASSEMBLER или PROLOG), то идентификатор становится общедоступным
с учетом применения к нему соглашений по именам, принятым в ука-
занном языке.
Директива PURGE Режимы Ideal, MASM
PURGE имя_макрокоманды[,имя_макрокоманды].
Удаляет макроопределение "имя_макрокоманды".
Директива %PUSHLCTL Режимы Ideal, MASM
Сохраняет в 16-уровневом стеке текущие параметры управления
листингом.
Директива QUIRKS Режимы Ideal, MASM
Позволяет вам ассемблировать исходный файл, в котором ис-
пользуются специфические "странности" MASM.
Директива .RADIX Режим MASM
.RADIX основание
Задает основание системы счисления для целочисленных конс-
тант (2, 8, 10 или 16).
Директива RADIX Режимы Ideal, MASM
RADIX основание
Задает основание системы счисления для целочисленных конс-
тант (2, 8, 10 или 16).
Директива RECORD Режимы Ideal, MASM
имя RECORD поле[,поле].
RECORD имя поле[,поле].
Определяет имя записи, которая содержит битовые поля. Каждое
поле описывает группу бит в записи, и имеет следующий формат:
имя_поля:длина[=выражение]
где "имя_поля" - это имя поля в записи. "Длина" (от 1 до 16) за-
дает число бит в поле. Если общее число бит во всех полях равно 8
или меньше, то запись будет занимать 1 байт, 9-16 бит будут зани-
мать 2 байта, в противном случае запись будет занимать 4 байта.
"Выражение" задает для поля значение по умолчанию.
Директива REPT Режимы Ideal, MASM
REPT выражение
операторы
ENDM
Повторяет блок операторов столько раз, сколько задается вы-
ражением.
Директива RETCODE Режимы Ideal, MASM
Генерирует ближний (2-байтовое смещение) или дальний (4-бай-
товое смещение) возврат, в зависимости от модели памяти, описан-
ной в директиве .MODULE. Крохотная (TINY), малая (SMALL) или
компактная (COMPACT) модели приводят к ближнему возврату, а сред-
няя (MEDIUM), большая (LARGE) и сверхбольшая (HUGE) модели приво-
дят к дальнему возврату. Более подробно об этом рассказывается в
описании инструкции RET в Главе 4.
Директива RETF Режимы Ideal, MASM
Генерирует возврат из процедуры дальнего (FAR) типа (4-бай-
товое смещение). Подробнее об этом рассказывается в Главе 4.
Директива RETN Режимы Ideal, MASM
Генерирует ближний (NEAR) возврат из процедуры (4-байтовое
смещение). Подробнее об этом рассказывается в Главе 4.
Директива .SALL Режим MASM
Подавляет листинг всех операторов в макрорасширении.
Директива SEGMENT Режимы Ideal, MASM
SEGMENT имя[выравнивание][комбинирование][использование]['класс']
имя SEGMENT[выравнивание][комбинирование][использование]['класс']
Определяет имя сегмента с полным управлением атрибутом. Если
вы уже определили сегмент с этим именем, то данный сегмент ин-
терпретируется, как продолжение предыдущего. "Выравнивание" опре-
деляет тип границы памяти, где должен начинаться сегмент: BYTE,
WORD, DWORD, PARA (по умолчанию) или PAGE. "Комбинирование" опре-
деляет, как сегменты с одним и тем же именем, но из различных мо-
дулей должны комбинироваться во время компоновки: AT выражение
(сегмент помещается по абсолютному адресу параграфа "выражение"),
COMMON (данный сегмент и все другие сегменты с этим именем поме-
щаются по одному адресу), MEMORY (выполняется конкатенация всех
сегментов с одинаковым именем в один непрерывный сегмент),
PRIVATE (данный сегмент не комбинируется с другими сегментами;
это задается по умолчанию, если аргумент не указывается), STACK
(выполняется конкатенация всех сегментов с одним и тем же именем
для формирования одного непрерывного сегмента, затем регистр SS
инициализируется значением начала сегмента, а SP - длиной сегмен-
та) или VIRTUAL (определяется сегмент специального вида, который
будет интерпретироваться, как общая область и присоединяться к
другому сегменту во время компоновки). "Использование" задает ис-
пользуемый по умолчанию для сегмента размер слова (если разрешена
генерация кода процессора 386) и может быть USE16 или USE32.
"Класс" управляет упорядочиванием сегментов на этапе компоновки.
Сегменты с одним и тем же именем класса загружаются в память
вместе, независимо от порядка, в котором они следуют в исходном
файле.
Директива .SEQ Режим MASM
Задает последовательное упорядочивание сегментов. Этот режим
упорядочивания используется Турбо Ассемблером по умолчанию. Ди-
ректива .SEQ имеет ту же функцию, что и параметр командной строки
/s.
Директива .SFCOND Режим MASM
Предотвращает включение в файл листинга операторов условных
блоков с ложным (False) условием.
Директива SIZESTR Режимы Ideal, MASM51
имя SIZESTR строка
Выравнивает число символов в строке по имени "имя". Нулевая
строка имеет нулевую длину.
Директива SMART Режимы Ideal, MASM
Разрешает все оптимизации кода.
Директива .STACK Режим MASM
.STACK [размер]
Определяет начало сегмента стека, выделяя "размер" байт. Ес-
ли "размер" не указывается, выделяется 1024 байта.
Директива STACK Режимы Ideal, MASM
STACK [размер]
Определяет начало сегмента стека, выделяя "размер" байт. Ес-
ли "размер" не указывается, выделяется 1024 байта.
Директива STARTUP Режимы MASM
Обеспечивает код инициализации. Используется только в режиме
MASM. Эквивалентна директиве STARTUPCODE.
Директива STARTUPCODE Режимы Ideal, MASM
Обеспечивает код инициализации и отмечает начало программы.
Директива STRUC Режимы Ideal, MASM
имя STRUC
поля
[имя] ENDS
STRUC имя
поля
ENDS [имя]
Определяет структуру с именем "имя", содержащую поля. В каж-
дом поле для определения его размера используются обычные дирек-
тивы выделения данных (DB, DW и т.д.). Поля могут быть именован-
ными или нет. При использовании режима MASM имена полей должны
быть уникальными. В режиме Ideal этого не требуется.
Директива SUBSTR Режимы Ideal, MASM
имя SUBSTR строка,позиция[,размер]
Определяет новую строку "имя", содержащую символы строки
"строка", начиная с указанной позиции длины "размер". Если размер
не задан, то имени присваиваются все оставшиеся в строке символы,
начиная с "позиции".
Директива SUBTTL Режим MASM
SUBTTL текст
Задает подзаголовок файла листинга.
Директива %SUBTTL Режимы Ideal, MASM
%SUBTTL текст
Задает подзаголовок файла листинга.
Директива %SYMS Режимы Ideal, MASM
Разрешает вывод в файле листинга таблицы идентификаторов. В
Турбо Ассемблере этот режим используется по умолчанию.
Директива %TABSIZE Режимы Ideal, MASM
%TABSIZE размер
Устанавливает число столбцов между символами табуляции в
файле листинга в соответствии со значением "размер". По умолчанию
это 8 позиций.
Директива TBLINIT Режимы Ideal, MASM
Инициализирует указатель в объекте на таблицу виртуальных
методов.
Директива TBLINST Режимы Ideal, MASM
TBLINST
Создает экземпляр таблицы виртуальных методов для текущего
объекта и определяет @TableAddr_<объект>. Эта директива должна
использоваться после каждого определения объекта, который включа-
ет в себя таблицу виртуальных методов, таким образом, таблица
виртуальных методов выделяется. Эта директива должны использо-
ваться только в одном модуле программы.
Директива TBLPTR Режимы Ideal, MASM
TBLPTR
Помещает указатель таблицы виртуальных методов на объект
данных. Определяет элемент структуры с именем @Mptr_<объект>. Это
можно использовать только в определении объекта.
Директива %TEXT Режимы Ideal, MASM
%TEXT длина
Задает длину поля исходного текста в листинге в соответствии
с указанным значением.
Директива .TFCOND Режимы MASM
Переключает режим вывода в файл листинга блоков условного
ассемблирования.
Директива TITLE Режим MASM
TITLE текст
Задает заголовок файла листинга ("текст").
Директива %TITLE Режимы MASM, Ideal
%TITLE "текст"
Задает заголовок файла листинга ("текст").
Директива %TRUNC Режимы Ideal, MASM
Усекает слишком длинные поля листинга.
Директива TYPEDEF Режимы Ideal, MASM
TYPEDEF имя_типа сложный тип
имя_типа TYPEDEF сложный_тип
Определяет именованный тип.
Директива UDATASEG Режимы Ideal, MASM
Определяет начало неинициализированного сегмента данных.
Директива UFARDATA Режимы Ideal, MASM
Определяет начало дальнего неинициализированного сегмента
данных.
Директива UNION Режимы Ideal, MASM (QUIRKS запрещается)
UNION имя
поля
ENDS [имя]
имя UNION
поля
[имя] ENDS
Определяет объединение с именем "имя". Объединение анало-
гично структуре, но все его элементы имеют нулевое смещение отно-
сительно начала объединения. Это позволяет получить набор перек-
рывающихся полей, благодаря чему можно ссылаться на определяемую
объединением с помощью различных имен и разных размеров данных.
Размер объединения соответствует размеру наибольшего элемента, а
не равен сумме длин всех элементов, как в структуре. "Поля" опре-
деляют поля, составляющие объединение. Каждое поле определяет
обычные директивы определения данных (DB, DW и т.д.).
Директива USES Режимы Ideal, MASM
USES элемент[,элемент].
Показывает, какие регистры или элементы данных, состоящие из
одной лексемы, вы хотите занести в стек в начале охватывающей
процедуры. Перед возвратом управления из процедуры эти регистры
будут извлекаться из стека. Вы должны использовать эту директиву
перед первой инструкцией, которая генерирует в процедуре реаль-
ный код.
Директива VERSION Режимы Ideal, MASM
VERSION <идентификатор_версии>
Переводит Турбо Ассемблер в режим работы, соответствующий
указанной версии.
Директива WARN Режимы Ideal, MASM
WARN [класс_предупреждений]
Разрешает вывод предупреждающих сообщений, тип которых опре-
деляется "классом_предупреждений", или всех предупреждающих сооб-
щений, если "класс_предупреждений" не задан. "Класс_предупрежде-
ний" может быть следующим: ALN, ASS, DRK, ICG,LCO, OPI, OPS, OVF,
PDC, PRO, PQR, RES или TPI.
Директива WHILE Режимы Ideal, MASM
WHILE выражение
тело_макрокоманды
ENDM
Повторяет тело макрокоманды, пока "выражение" равно 0
(false).
Директива .XALL Режим MASM
Вызывает вывод в файл листинга только тех макрорасширений,
которые генерируют код или данные.
Директива .XCREF Режим MASM
Запрещает сбор информации для листинга перекрестных ссылок
(CREF).
Директива .XLIST Режим MASM
Запрещает последующий вывод в файл листинга.
Назад | Содержание | Вперед