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

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

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

Размер
(в байтах)
Объявление Резервирование
1 db rb
2 dw
du
rw
4 dd rd
6 dp
df
rp
rf
8 dq rq
10 dt rt
N file


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

Объявлять данные как и в любом языке программирования очень просто — например, чтобы объявить байт 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.
  

 
Поделиться в facebook
Facebook
Поделиться в twitter
Twitter
Поделиться в vk
VK
Поделиться в google
Google+
Поделиться в email
Email

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

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

Группа в VK

Помощь проекту

Обнаружили опечатку?

Сообщите нам об этом, выделите текст с ошибкой и нажмите Ctrl+Enter, будем очень признательны!

Свежие статьи

Похожие статьи

Команды работы с битами.

Команды работы с битами.

Работать с отдельными битами операндов можно, используя логические операции и сдвиги. Также в системе команд x86 существуют специальные команды для работы с битами: это команды

 
Основы создания макросов в Assembler.

Основы создания макросов в Assembler.

Макросы — это шаблоны для генерации кода. Один раз создав макрос, можно использовать его во многих местах в коде программы. Макросы делают процесс программирования на

 
Синтаксис объявления меток.

Синтаксис объявления меток.

Метка в ассемблере – это символьное имя, обозначающее ячейку памяти, которая содержит некоторую команду. Метка может содержать следующие символы: Буквы (от A до Z и

 
Локальные переменные.

Локальные переменные.

Локальные переменные в Assembler используются для хранения промежуточных результатов во время выполнения процедуры. В отличие от глобальных, эти переменные являются временными и создаются при запуске

 

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: