Директивы объявления данных.




Практически любая программа содержит какие-то данные. Например, числа, текстовые строчки, идентификаторы, различные ресурсы и многое другое. Данные могут быть как константами, не меняющими своё значение во время выполнения программы, так и переменными, в которых хранятся всякие промежуточные результаты.

Нам нужно научиться объявлять данные в программе. Для этого в ассемблере существуют директивы объявления данных.

Размер
(в байтах)
ОбъявлениеРезервирование
1dbrb
2dw
du
rw
4ddrd
6dp
df
rp
rf
8dqrq
10dtrt
Nfile


Как объявить данные?

Объявлять данные как и в любом языке программирования очень просто — например, чтобы объявить байт cо значением 5 достаточно написать:

  x db 5
  

где x — название нашей переменной или константы, db — директива объявления байта, а 5 значение. С помощью названия в программе можно будет обращаться к ячейке памяти, содержащей наш байт.

Объявление последовательностей (массивов)

Бывает так, что надо объявить массив, то есть несколько переменных одинакового размера, расположенных в памяти друг за другом. Например, чтобы объявить массив из 5 двухбайтных чисел нужно написать:

  array1 dw 1,2,3,4,5
  

где array1 — название массива, 1,2,3,4,5 — значения элементов.

Объявление строк

Строка представляет собой массив байтов-символов и записывается в одинарных кавычках:

  str1 db 'Hello World!'
  

Для обозначения конца строки используется специальный символ. Обычно это нулевой байт, но для функций DOS используется символ «$».

str2 db 'Hello World!',0    ;Обычно так
str3 db 'Hello World!$'     ;Для DOS
  

Резервирование данных

Можно объявлять переменные, не имеющие определённого начального значения. Такие переменные называются неинициализированными. Например, их можно использовать в программе для хранения временного или промежуточного значения. Фактически под переменную просто резервируется место в памяти. Объявлять такие переменные можно с помощью директив db, dw, dd и знака вопроса вместо значения.

x1 db ?
x2 dw ?,?,?
x3 dd 10 dup(?)
  

Директива file

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

data1 file 'data.bin'       ;Добавить файл data.bin целиком.
data2 file 'data.bin':20    ;Добавить байты из файла data.bin, начиная со смещения 20.
data3 file 'data.bin':20,5  ;Добавить 5 байтов из файла data.bin, начиная со смещения 20.
  

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *