Лекция 6
Нека дадем формално определение:
масив - структуриран тип данни, състоящ се от множество елементи от същия тип.
За да разберете възможностите и особеностите на обработката на масиви в асемблерни програми, трябва да отговорите на следните въпроси:
Как да опиша масив в програма?
Как да инициализираме масив, т.е. как да зададете началните стойности на неговите елементи?
Как да организираме достъпа към елементи от масив?
Как да организираме масиви с измерение повече от едно?
Как да организираме изпълнението типични операции с масиви?
Описание и инициализация на масив в програмата
Разбира се, няма специални средства за описване на масиви в асемблерни програми. Ако е необходимо да се използва масив в програма, той трябва да бъде моделиран по един от следните начини:
Чрез изброяване на елементи на масива в полето на операнда на една от директивите за описание на данни. Елементите са разделени със запетаи, когато са изброени. Например:
; масив от 5 елемента. Всеки елемент е с размер 4 байта:
Използване на оператора за повторение дуп. Например:
; масив от 5 нулеви елемента.
; Размерът на всеки елемент е 2 байта:
Този метод на дефиниция се използва за резервиране на памет с цел разпределяне и инициализиране на масивни елементи.
Използване на директиви етикет и отп. Няколко от тези директиви могат да улеснят описването на големи масиви в паметта и да увеличат яснотата на такова описание. Директива отп се отнася до макросите на асемблерния език и кара определен брой пъти да повтаря редовете, затворени между директивата и endm на реда. Например, нека дефинираме масив от байтове в областта на паметта, посочена от идентификатора mas_b. В този случай директивата етикет дефинира символично име mas_b, по същия начин, както правят директивите за резервиране и инициализация на паметта. Достойнство на директивата етикет в това, че не запазва памет, а само определя характеристиките на обекта. В този случай обектът е място в паметта. Използване на множество директиви етикет, записани едно след друго, можете да присвоите различни имена и различен тип на една и съща област на паметта, което се прави в следния фрагмент: