Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Директивы

Читайте также:
  1. Директивы using и пространства имен
  2. Директивы ассемблера
  3. Директивы ЕС об эргономических требованиях
  4. Директивы общего назначения
  5. ДИРЕКТИВЫ ЯЗЫКА

Ассемблерная программа определяет не только машинные команды, которые нужно выполнять процессору, но и команды, которые нужно выполнять самому ассемблеру (например, выделить немного памяти или выдать новую страницу листинга). Команды для ассемблера называются псевдокомандами, или ассемблерными директивами. В листинге 7.1 мы уже встречали типичную псевдокоманду DD. В табл. 7.2 перечислены некоторые другие псевдокоманды (директивы). Они взяты из ассемблера MASM семейства ассемблеров Intel.

Таблица 7.2. Некоторые директивы ассемблера MASM

Директива SEGMENT Описание Начало нового сегмента (текста, данных и т. п.) с определенными
  атрибутами
ENDS Завершение текущего сегмента
ALIGN Управление выравниванием следующей команды или данных
EQU Определение нового символа, равного данному выражению
DB Выделение памяти для одного или нескольких байтов
DW Выделение памяти для одного или нескольких 16-разрядных полуслов
DD Выделение памяти для одного или нескольких 32-разрядных слов

 

Директива Описание
DQ Выделение памяти для одного или нескольких 64-разрядных двойных слов
PROC Начало процедуры
ENDP Завершение процедуры
MACRO Начало макроса
ENDM Завершение макроса
PUBLIC Экспорт имени, определенного в данном модуле
EXTERN Импорт имени из другого модуля
INCLUDE Вызов другого файла и включение его в текущий файл
IF Начало условного ассемблирования программы на основе данного
  выражения
ELSE Начало условного ассемблирования программы, если условие для
  директивы 1Р не выполнено
ENDIF Завершение условного ассемблирования программы
COMMENT Определение нового символа начала поля комментариев
PAGE Принудительный разрыв страницы в листинге
END Завершение ассемблерной программы

Директива SEGMENT начинает новый сегмент, а директива ENDS завершает его. Разрешается начинать текстовый сегмент, затем начинать сегмент данных, затем переходить обратно к текстовому сегменту и т. д.

Директива ALIGN передает следующую строку (обычно данные) по адресу, заданному аргументом директивы. Например, если текущий сегмент уже содержит 61 байт данных, тогда после выполнения директивы ALIGN 4 следующим выделяемым адресом будет адрес 64.

Директива EQU дает символическое название некоторому выражению. Например, после следующей директивы символ BASE можно использовать в программе вместо значения 1000:

BASE EQU 1000

Выражение, которое следует за директивой EQU, может содержать несколько символов, соединенных знаками арифметических и других операций, например:

LIMIT EQU 4 * BASE + 2000

Большинство ассемблеров, в том числе MASM, требуют, чтобы символ был определен в программе до его появления в таком выражении, как это.

Директивы DB, DD, DW и DQ выделяют память для одной или нескольких переменных размером 1, 2, 4 и 8 байт соответственно. Например:




Дата добавления: 2014-12-19; просмотров: 130 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.008 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав