Здравствуйте все! Сегодня мы продолжим знакомство с ассемблером. Давайте поговорим с вами о переменных! У процессора нет понятия "Переменная", он может работать лишь с областью памяти, поэтому имена переменных введены чисто для удобства. В процессе компиляции они будут заменены на числа (адреса памяти). Кроме того процессор не может сам различить код от данных, поэтому надо следить, чтобы содержимое переменных не попали в процессор как команды.
Теперь посмотрим объявление переменных:
[Имя] тип данные [,данные[...]]
Имя - имя переменных. Не должно быть зарезервированным словом. Чувствительно к регистру. Может содержать буквы, цифры, знаки: "_","$","%","^","!","?","@". Имя не должно начинаться с цифры. Имя может быть вообще не указано. В таком случае процессор просто вставит в это место данные.
Тип - определяет размер данных.
Тип | Размер |
---|---|
db | Байт |
dw | Слово (2 байта) |
dd | Двойное слово (4 байта) |
dp | Тройное слово (6 байт) |
dq | Четверное слово (8 байт) |
dt | Пятерное слово (10 байт) |
Данные - данные, которые по умолчанию будут находиться по этому адресу.
Данным может быть число. В этом случае нужно следить, чтобы оно не выходило за рамки дозволенного (Например нельзя поместить число 1000 в один байт). Данных может быть несколько. В этом случае они перечисляются через запятую. Но учтите: имени будет соответствовать только первое данное. Можно также в данные поместить строки символов. Для этого их надо заключить в ОДИНОЧНЫЕ кавычки. Как правило один символ занимает один байт, поэтому нельзя поместить в слово более двух символов.
НО! В случае объявления байтовой переменной вся стока будет эквивалентна последовательности данных. Т.е. допустимо объявление
db '12345'
Но недопустимо
dw '12345'
Кроме того часто надо лишь зарезервировать область памяти, а не помещать туда данные. В этом случае надо заменить букву "d" в типе на "r". Т.е. вместо "db" будет "rw" и т.д. Далее в скобках указываем резервируемое количество. Например:
rd(2)
Резервирует место для двух переменных типа "DD".
На сегодня все. В следующий раз попробуем применить полученные знания: создадим свою первую программу!