Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Met_Lab2.pdf
Скачиваний:
159
Добавлен:
11.05.2015
Размер:
1.1 Mб
Скачать

Если в качестве операнда в правой части написана числовая константа, то директива является просто определением именованной константы (на практике чаще всего используется именно этот случай, например, для задания числа элементов массива). Значение именованной константы, заданной директивой EQU, не может быть изменено при помощи другой директивы EQU.

Если в качества операнда в правой части написан некий текст, который нельзя отнести ни к чему перечисленному выше, имя в правой части будет просто сокращенным обозначением текста.

Примеры:

counter equ CX N equ 2*К-1

maxbyte equ OFFh

noflle equ "File not found"

4.2. Директивы описания и инициализации переменных DB, DW и DD

4.2.1.Директива DB (Define Byte - определить байт)

Впростейшем варианте директива DB имеет формат:

Имя db Нач_Значение

Операнд Нач_Значение может быть в общем случае выражением, а в частном случае именем другой переменной (определенной ранее), константой, символом и знаком "?".

По этой директиве компилятор выделяет 1 байт памяти и закрепляет за ним указанное имя. Практически компилятор вводит псевдоним адреса выделенного байта, удобный для программиста. Кроме того компилятор хранит информацию о том, что любой двоичный код, который будет находиться по этому адресу, будет представлять собой 1-байтовую переменную.

Далее компилятор вычисляет выражение, стоящее в правой части и его значением инициализирует описанную переменную. Если вместо операнда стоит знак "?", то инициализация не производится и значение переменной непредсказуемо.

Примеры:

р db 1 ; р=1 q db 2 ; q=2

r db ? ; r не инициализировано s db 3+2 ; s=5

t db 'Ю' ; В байте t находится ASCII-код буквы Ю

Массив определяется либо как директива DB с несколькими операндами, либо как несколько директив db с именем только у первой директивы. В следующих двух примерах определяется один и тот же массив А с тремя элементами:

A db 7, ?, 'r' A db 7

db ? db 'r'

48

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