КАТЕГОРИИ: Архитектура-(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.
Дата добавления: 2013-12-12; Просмотров: 1555; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |