русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2015-06-12; просмотров: 828; Нарушение авторских прав


Все данные, используемые в программах на ассемблере, обязательно должны быть объявлены. Директива объявления данных имеет следующий формат:

[Имя] Директива [Константа DUP (] Список инициализаторов [)]

где Имя – символическое имя поля данных, которое может не присваиваться;

Директива – команда, объявляющая тип описываемых данных (см. таблицу 3);

Таблица 3 – Директивы определения данных

Директива Описание типа данных
BYTE 8-разрядное целое без знака
SBYTE 8-разрядное целое со знаком
WORD 16-разрядное целое без знака или ближний указатель реального режима
SWORD 16-разрядное целое со знаком
DWORD 32-разрядное целое без знака, дальний указатель реального режима или ближний указатель защищенного режима
SDWORD 32-разрядное целое со знаком
FWORD 48-разрядное целое или дальний указатель защищенного режима
QWORD 64-разрядное целое
TBYTE 80-разрядное целое
Real4 32-х разрядное короткое вещественное
Real8 64-х разрядное длинное вещественное
Real10 80-ти разрядное расширенное вещественное

Примечание – В качестве директив также могут использоваться:

· DB –определить байт,

· DW –определить слово,

· DD –определить двойное слово (4 байта),

· DQ –определить четыре слова (8 байт),

· DT –определить пять слов (10 байт),

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

Константа DUP – используется при описании повторяющихся данных, тогда константа определяет количество повторений;

Список инициализаторов – последовательность инициализирующих констант, указанных через запятую, или символ «?», если инициализирующее значение не определяется.



В качестве инициализирующих констант при описании данных применяются:

· целые константы формата

[Знак]Целое[Основание системы счисления],

например:

    • -43236, 236d – целые десятичные числа (применяется по умолчанию),
    • 23h, 0ADh – целые шестнадцатеричные числа (если шестнадцатеричная константа начинается с буквы, то перед ней указывается 0),
    • 0111010b – целое двоичное число;

· вещественные константы формата

[Знак] Целое [. [Целое]] [E|e [Знак] Целое],

например: -2.1, 34E-28;

· символы в кодировке ASCII (MS DOS) или ANSI (Windows) в апострофах «'» или кавычках «²», например: 'A' или ²A², при этом использование апострофов и кавычек в ассемблере эквивалентно;

· строковые константы в апострофах или кавычках, например, 'ABCD' или ²ABCD².

Примеры.

a db 23; записать в байт число 23 и присвоить этому байту имя а

db ?; зарезервировать 1 байт памяти, доступ по адресу a+1

dw 1234H ; записать в слово шестнадцатеричное число 1234, доступ по адресу a+2

Примечание – При записи данных размером более 1 байта в память младший байт записывается в поле с меньшим адресом, затем следует байт перед младшим и т.д. до старшего. Например, в предыдущем примере, если запись выполнялась по адресу 100, то по адресу 100 будет записано 34H, а по адресу 101 – 12H.

db 31 dup (1,2,3,4,5); определить 31 байт: 1, 2, 3, 4, 5, 1, 2, 3,...

val1 BYTE 255; записать в байт число 25510 = 111111112 и назвать vall

lue3 SWORD -128; записать в слово число -128 и назвать lue3

alu BYTE 10 dup ?; зарезервировать 10 байт и назвать alu

BYTE 10h; записать в байт шестнадцатеричное число 1016 = 1610

v5 BYTE 100101B; записать в байт двоичное числои назвать v5

BYTE 23,23h,0ch; записать в байт каждое из указанных чисел

sdk BYTE ²Hello²,0; записать в память строку, потом 0 и назвать sdk

SWORD -32767; записать в слово заданное число

DWORD 12345678h; записать в двойное слово шестнадцатеричное число



<== предыдущая лекция | следующая лекция ==>
Комментарий | OPND dw 25


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.