Ассемблер. Массивы

  Светлана Деменева  | 

  Обновл. 8 Дек 2019  | 

 7210

 ǀ   1 

Мы уже обсуждали, что в Ассемблере директивы определения данных используются для выделения памяти для переменных. Переменная также может быть инициализирована определённым значением. Инициализированное значение может быть указано в шестнадцатеричной, десятичной или двоичной форме.

Например, мы можем определить переменную months типа word любым из следующих способов:

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

В примере выше мы объявили массив из шести значений типа word, каждое из которых инициализировано числами 34, 45, 56, 67, 75, 89, соответственно. Таким образом, мы выделили 12 байтов (2 * 6 = 12) памяти. Символьный адрес первого числа будет NUMBERS, второго числа — NUMBERS + 2 и так далее.

Давайте рассмотрим другой пример. Вы можете определить массив с именем INVENTORY размером 8 и инициализировать все значения нулём:

Можно сократить и написать следующим образом:

Директива TIMES также может использоваться для нескольких инициализаций одного и того же значения. Используя TIMES, массив INVENTORY можно определить как:

В следующем примере мы определим массив x, состоящий из трёх элементов: 2, 3 и 4. Затем мы добавим эти значения и выведем их сумму:

Результат выполнения программы выше:

9

Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (15 оценок, среднее: 3,80 из 5)
Загрузка...

Комментариев: 1

  1. Аватар Zerox:

    Здравствуйте ,у меня есть мечта написать свою маленькую ОС, и меня вечно мучают различные мысли по поводу обучения различных яп для реализации данной мечты… вообщем …хватит ли данных уроков по ASM'у и C++ для написания ядра на асме и оболочки на с++ для своей ос (и еще один маленький вопросик…, почему Nasm а не Fasm) буду очень благодарен за ответ).

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

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