Инициализация массивов


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

SampleArray DW 0, 1, 2, 3, 4

создает массив из пяти элементов с именем SampleArray, элементы которого имеют размер в слово (см. Рис. 5.7). В директивах опре-деления данных можно использовать любое число значений, умещающе-еся на строке.

| |

|————|

| ? |

SampleArray ————-> |————|

| 0 |

|————|

| 1 |

|————|

| 2 |

|————|

| 3 |

|————|

| 4 |

|————|

| ? |

|————|

| |

Рис. 5.7 Пример массива из пяти элементов.

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

SquareArray DD 0, 1, 4, 9, 16

DD 25, 36, 49, 64, 81

DD 100, 121, 144, 169, 196

создается массив элементов размером в двойное слово с именем SquareArray, состоящий из квадратов первых 15 целых чисел.

Турбо Ассемблер позволяет вам определить блок памяти, иници-ализированный указанным значением, с помощью операции DUP. Напри-мер:

BlankArray DW 100h DUP (0)

Здесь создается массив BlankArray, состоящий из 255 (десят.) слов, инициализированных значением 0. Аналогично, директива:

ArrayOfA DB 92 DUP (‘A’)

создает массив из 92 байт, каждый из которых инициализирован сим-волом A.