Учим ассемблер

Урок 2.

Здравствуйте все! Сегодня мы продолжим знакомство с ассемблером. Давайте поговорим с вами о переменных! У процессора нет понятия "Переменная", он может работать лишь с областью памяти, поэтому имена переменных введены чисто для удобства. В процессе компиляции они будут заменены на числа (адреса памяти). Кроме того процессор не может сам различить код от данных, поэтому надо следить, чтобы содержимое переменных не попали в процессор как команды.

Теперь посмотрим объявление переменных:

[Имя] тип данные [,данные[...]]

Имя - имя переменных. Не должно быть зарезервированным словом. Чувствительно к регистру. Может содержать буквы, цифры, знаки: "_","$","%","^","!","?","@". Имя не должно начинаться с цифры. Имя может быть вообще не указано. В таком случае процессор просто вставит  в это место данные.

Тип - определяет размер данных.

Тип Размер
db Байт
dw Слово (2 байта)
dd Двойное слово (4 байта)
dp Тройное слово (6 байт)
dq Четверное слово (8 байт)
dt Пятерное слово (10 байт)

Данные - данные, которые по умолчанию будут находиться по этому адресу.

Данным может быть число. В этом случае нужно следить, чтобы оно не выходило за рамки дозволенного (Например нельзя поместить число 1000 в один байт). Данных может быть несколько. В этом случае они перечисляются через запятую. Но учтите: имени будет соответствовать только первое данное. Можно также в данные поместить строки символов. Для этого их надо заключить в ОДИНОЧНЫЕ кавычки. Как правило один символ занимает один байт, поэтому нельзя поместить в слово более двух символов.

НО! В случае объявления байтовой переменной вся стока будет эквивалентна последовательности данных. Т.е. допустимо объявление

db '12345'

Но недопустимо

dw '12345'

Кроме того часто надо лишь зарезервировать область памяти, а не помещать туда данные. В этом случае надо заменить букву "d" в типе на "r". Т.е. вместо "db" будет "rw" и т.д. Далее в скобках указываем резервируемое количество. Например:

rd(2)

Резервирует место для двух переменных типа "DD".

На сегодня все. В следующий раз попробуем применить полученные знания: создадим свою первую программу!

Предыдущий урок Следующий урок

Hosted by uCoz