Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Базовая индексная адресация со смещением

Mov si,2

Mov si,0

Mas dw 0,1,2,3,4,5

Data

Endm

Rept 4

Masw label word

Masb label byte

dw 0f1f0h;массив из 4 повторяющихся слов 0f1f0h

.

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

Адрес = База + (Индекс * Размер элемента массива).

Для работы с массивами используются базовые и индексные регистры, позволяющие реализовать несколько режимов адресации данных.

 

Индексная адресация со смещением.

Эффективный адрес формируется из двух компонент:

постоянного (базового), указывающего на прямой адрес массива в виде имени идентификатора;

переменного (индексного), указывающего на имя индексного регистра.

 

Пример:

……………..

mov ax,mas[si];записать в регистр ax слово 0

mov ax,mas[si];записать в регистр ax слово 1

 

 

Этот вид адресации используется при работе с двумерными массивами.

Эффективный адрес формируется максимум из трех компонентов:

постоянного (необязательного), указывающего на прямой адрес массива в виде имени идентификатора;

переменного (базового) – имени базового регистра;

переменного (индексного) – имени индексного регистра.

Микропроцессор позволяет масштабировать содержимое индексного регистра (умножать на 2, 4, 8), что обеспечивает вычисление адресов операндов типа w, dw, dd

 

Пример:

mov eax, mas[ebx*4]; mas +(ebx)*4

mov ax, mas[ebx] [ecx*2]; mas +(ebx)+(ecx)*2

sub ax, [ebx+8] [ecx*4]; (ebx)+8+(ecx)*4

Программист должен трактовать некоторую область памяти как двумерный массив. При этом можно выбрать расположение элементов массива в памяти: по строкам или по столбцам.

Если последовательность однотипных элементов трактуется как двумерный массив, расположенный по строкам, то адрес элемента (i,j) вычисляется по формуле:

база + i*m*d + j*d

где m – число столбцов в массиве,

i – номер строки (0…n-1),

j- номер столбца (0…m-1),

d- размер элемента в массиве (1,2,4,6….).

 

Пусть число строк в массиве n=4, и число столбцов m=3.

<== предыдущая лекция | следующая лекция ==>
Массивы | Loop exter
Поделиться с друзьями:


Дата добавления: 2013-12-12; Просмотров: 1555; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.