дится при запуске программы и адреса таких данных не изменяются по ходу выполнения программы. Места для динамического хранения тех или иных данных отводится по ходу выполнения программы, поэтому.по одним и тем же адресам в разное время могут находиться разные (по имени или значению индекса) данные.

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

{REM ¦ '} {$ STATIC ¦$DYNAMIC) (1.27)

Где: $STATIC - означает, что массивы, объявленные в последующих командах DIM (до тех пор пока они не объявлены в нестатических функциях FUNCTION и процедурах SUB), хранятся статически, a $DYNAMIC - означает, что массивы, объявленные в последующих командах DIM, хранятся динамически.

Команды DIM и REDIM обычно обеспечивают лучший способ выбора статического и динамического хранения массивов по сравнению с метакомандами. Если место хранения массива не было определено одной из команд $ STATIC, $DYNAMIC или COMMON, то по команде DIM массивы с размерностью заданной числами хранятся статически, а массивы с размерностью заданной именами переменных — динамически. REDIM всегда объявляет динамический массив.

Определить нижнюю и верхнюю границы массива (то есть наименьшее и наибольшее значения индекса по соответствующему измерению) позволяют функции

LBOUND(arrayname[,dimension%]) (1.28) и

UBOOND(arraynane[,dimension%]) (1.29) Где: arrayname — имя массива, a dimension% указывает на номер индекса, границы которого определяются функцией (нужно использовать 1 для первого измерения, 2 — для второго и так далее). По умолчанию выдаются границы для первого измерения.

Когда необходимость хранения какого-либо массива в статической или динамической области отпадает, можно освободить место для хранения других массивов командой ERASE arrayname [,arrayname] (1-30)

Для статически хранимых массивов ERASE записывает нулевые значения в названный числовой массив или строки нулевой длины в строковый. Для динамически хранимых массивов ERASE освобождает занятую названным массивом память. Перед использованием освобожденного объема памяти для динамического хранения массива необходимо объявить его размеры командами REDIM или DIM. Желательно использовать динамическую область хранения массивов таким образом, чтобы все свободное пространство было сплошным. Для этого необходимо использовать то же правило обслуживания, которое применяется в стеке — «первым обслуживается последний в очереди».

Ознакомившись достаточно подробно с программированием в части хранения данных в ОЗУ, приступим к описанию взаимодействия ОЗУ и ЦП.