Помощничек
Главная | Обратная связь


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

Директивы определения данных



Ассемблер обеспечивает два способа определения данных: во-первых,

через указание длины данных и, во-вторых, по их cодержимому. Рассмотрим

основной формат определения данных:

 

[имя] Dn выражение

 

Имя элемента данных не обязательно (это указывается квадратными

скобками), но если в программе имеются ссылки на некоторый элемент,

то это делается посредством имени.

Для определения элементов данных имеются следующие директивы: DB

(байт), DW (слово), DD (двойное слово), DQ (учетверенное слово) и DT

(десять байт).

Выражение может содержать константу, например:

 

FLD1 DB 25

 

или знак вопроса для неопределенного значения, например

 

FLDB DB ?

 

Выражение может содержать несколько констант, разделенных запятыми и

ограниченными только длиной строки:

 

FLD3 DB 11, 12, 13, 14, 15, 16, ...

 

Ассемблер определяет эти константы в виде последовательности cмежных байт.

Ссылка по имени FLD3 указывает на первую константу, 11, по FLD3+1 - на

вторую, 12. (FLD3 можно представить как FLD3+0). Например команда

 

MOV AL,FLD3+3

 

загружает в регистр AL значение 14 (шест. 0E). Выражение допускает также

повторение константы в следующем формате:

 

[имя] Dn число-повторений DUP (выражение) ...

 

Следующие три примера иллюстрируют повторение:

 

DW 10 DUP(?) ;Десять неопределенных слов

DB 5 DUP(14) ;Пять байт, содержащих шест.14

DB 3 DUP(4 DUP(8));Двенадцать восьмерок

 

В третьем примере сначала генерируется четыре копии десятичной 8

(8888), и затем это значение повторяется три раза, давая в pезультате

двенадцать восьмерок.

Выражение может содержать символьную строку или числовую константу.

 

 

Символьные строки

-------------------

Символьная строка используются для описания данных, таких как,

например, имена людей или заголовки страниц. Содержимое строки oтмечается

одиночными кавычками, например, 'PC' или двойными кавычками - "PC".

Ассемблер переводит символьные строки в объектный код в обычном формате

ASCII.

Символьная строка определяется только директивой DB, в котоpой

указывается более двух символов в нормальной последовательности слева

направо. Следовательно, директива DB представляет единственно возможный

формат для определения символьных данных.

Числовые константы

--------------------

Числовые константы используются для арифметических величин и для

aдресов памяти. Для описания константы кавычки не ставятся. Ассемблер

преобразует все числовые константы в шестнадцатеричные и записывает байты

в объектном коде в обратной последовательности - справа налево. Ниже

показаны различные числовые форматы.

 

Д е с я т и ч н ы й ф о р м а т. Десятичный формат допускает

десятичные цифры от 0 до 9 и обозначается последней буквой D, которую

можно не указывать, например, 125 или 125D. Несмотря на то, что ассемблер

позволяет кодирование в десятичном формате, он преобразует эти значения в

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

7D.

 

Ш е с т н а д ц а т и р и ч н ы й ф о р м а т. Шестнадцатиричный

формат допускает шест. цифры от 0 до F и обозначается последней буквой H.

Так как ассемблер полагает, что с буквы начинаются идентификаторы, то

первой цифрой шест. константы должна быть цифра от 0 до 9. Например, 2EH

или 0FFFH, которые ассемблер преобразует соответственно в 2E и FF0F (байты

во втором примере записываются в объектный код в обратной

последовательности).

 

Д в о и ч н ы й ф о р м а т. Двоичный формат допускает двоичные

цифры 0 и 1 и обозначается последней буквой B. Двоичный формат обычно

используется для более четкого представления битовых значений в логических

командах AND, OR, XOR и TEST. Десятичное 12, шест. C и двоичное 1100B все

генерируют один и тот же код: шест. 0C или двоичное 0000 1100 в

зависимости от того, как вы рассматриваете содержимое байта.

 

В о с ь м е р и ч н ы й ф о р м а т. Восьмеричный формат допускает

восьмеричные цифры от 0 до 7 и обозначается последней буквой Q или O,

например, 253Q. На сегодня восьмеричный формат используется весьма редко.

 

Д е с я т и ч н ы й ф о р м а т с п л а в а ю щ е й т о ч к о й.

Этот формат поддерживается только ассемблером МASM.

 

При записи символьных и числовых констант следует помнить, что,

например, символьная константа, определенная как DB '12', представляет

символы ASCII и генерирует шест.3132, а числовая константа, oпределенная

как DB 12, представляет двоичное число и генерирует шест.0C.

Рис.5.1 иллюстрирует директивы для определения различных символьных

строк и числовых констант. Сегмент данных был ассемблирован для того,

чтобы показать сгенерированный объектный код (слева).

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.