Ассемблер: Массивы и структуры

В языках высокого уровня массивом называется переменная, представляющая собой совокупность нескольких элементов одного типа. Эта совокупность имеет одно имя, а доступ к ее отдельным элементам осуществляется при помощи индекса.
В Ассемблере массивом можно назвать несколько подряд идущих в памяти байт, слов или двойных слов, но все элементы массива должны быть либо байтами, либо словами, либо двойными словами, т. е. иметь одинаковую длину. В качестве имени массива используется символическое имя адреса (смещения) первого байта первого элемента массива. Массивы байт иногда называют строками.
Следует особо подчеркнуть: о том, что данная последовательность элементов является массивом, знает только программист, компьютер об этом «не знает». Поэтому, естес1венно, при компиляции и выполнении программы не производится какого-либо контроля на выход за пределы массива и проч. Например, программист может определить массив из 10 элементов, а затем обратиться к 15-му элементу этого массива — ответственность за такое обращение будет целиком лежать на программисте.
В целом можно констатировать, что подход к массивам в Ассемблере очень близок к подходу к массивам в языке С: весь массив задается адресом первого элемента и размером элементов, «конец» массива никак не фиксируется.
В языках высокою уровня структурой (или записью) называется переменная, представляющая собой совокупность нескольких элементов (в общем случае) разных типов. Эта совокупность имеет одно имя, а доступ к отдельным элементам (называемым полями) осуществляется при помощи составного имени (составление! о из имени самой структуры и имени ноля).
Аналогично в Ассемблере структурой можно назвать несколько подряд идущих в памяти байт, слов или двойных слов, причем элементы (поля) могут быть и байтами, и словами, и двойными словами, т. е. иметь различную длину. В качестве имени структуры используется символическое имя адреса (смещения) первого байта структуры, а в качестве имен полей используются символические имена смещений полей относительно имени структуры.
Следует подчеркнуть разницу между описаниями массивов и структур в Ассемблере (которая имеется, впрочем, и в языках высокого уровня). Когда мы описываем массив, компилятор выделяет память для него. Со структурами дело обстоит сложнее. Сначала мы должны описать тип структуры, т. е. указать перечень полей, из которых она состоит. На этом этапе память компилятором еще не выделяется. После того, как тип структуры описан, мы можем описывать переменные, являющиеся конкретными воплощениями (объектами, ипостасями, экземплярами) описанного выше типа структуры. Именно на этом этапе компилятор выделяет память под экземпляры структур.

А ты знаешь все секреты вконтакте? Каждый день выходят всё новые и новые. Найди мастера в услуги харьков который сделает то, что ты не можешь. Лучшие Адалт партнерки.


Интересные записи

Один комментарий для “Ассемблер: Массивы и структуры

Написать комментарий