переменные и константы. Переменные и константы Для студентов группы ис 2
Скачать 1.57 Mb.
|
Переменные и константыДля студентов группы ИС – 2Предмет: МДК 01.04 Системное программированиеХранения инициализированных данныхСинтаксис стейтмента* выделения памяти для инициализированных данных следующий:[имя_переменной] директива_определения начальное_значение [,начальное_значение]...Где имя_переменной является идентификатором для каждого пространства хранения данных. Ассемблер связывает значение смещения с именем каждой переменной, определенной в сегменте данных.*Cтейтмент (англ. "statement") – это наиболее распространённый тип инструкций в программах. Это всё, что заканчивается точкой с запятой (;) или является управляющей конструкцией (но не само ключевое слово).Есть 5 основных форм директивы определения:
Примеры использования директив определения:
Программа показывающая использование директивы определения: Что является результатом данной программы?
Хранение неинициализированных данныхДирективы резервирования используются для резервирования пространства неинициализированных данных. Директивы резервирования принимают один операнд, который определяет количество единиц пространства, которое будет зарезервировано. Каждая директива определения имеет связанную директиву резервирования.Есть 5 основных форм директив резервирования:
Можно иметь несколько стейтментов определения данных в программе. Например:
Ассемблер выделяет смежную память для нескольких определений переменных. Несколько инициализацийДиректива TIMES позволяет выполнить несколько инициализаций одного значения. Например, массив с именем marks длиной 9 может быть определен и инициализирован нулем следующим образом:
Директива TIMES полезна при определении массивов и таблиц. Что выводит следующая программа? Определение константNASM предоставляет несколько директив, определяющих константы:
Директива EQUДиректива EQU используется для определения констант. Её синтаксис следующий:ИМЯ_КОНСТАНТЫ EQU-выражениеНапример:
Затем можно использовать эту константу в программе: mov ecx, TOTAL_STUDENTS cmp eax, TOTAL_STUDENTS Операндом стейтмента EQU может быть выражение:
Вышеприведенный фрагмент кода определит AREA как 200. Директива %assignДиректива %assign может быть использована для определения числовых констант. Эта директива допускает переопределение. Например, можно определить константу TOTAL следующим образом:
Затем в коде она переопределяется:
Эта директива является чувствительной к регистру. Директива %defineДиректива %define позволяет определять как числовые, так и строковые константы. Эта директива похожа на директиву #define в языке С. Например, можно определить константу PTR следующим образом:
Вышеприведенный код заменяет PTR на [EBP+4]. Эта директива также допускает переопределение и является чувствительной к регистру. |