КАТЕГОРИИ: Архитектура-(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) |
Базирование и косвенные адреса
Правило использования косвенной адресации:
Существует 2 варианта косвенной адресации ячеек ОП:
MOV AX, [BX].
Исполнительный адрес операнда может находиться в базовом регистре BX, регистре указателя базы BP или индексном регистре SI или DI. Косвенный регистровый операнд заключается в квадратные скобки, что означает "в качестве адреса брать содержимое того адреса, на который указывает заключенный в квадратные скобки регистр". Чтобы адрес-смещение переменной мог оказаться в РОН, используется команда пересылки следующего вида:
MOV BX, offset SOURCE.
Функции этой команды заключаются в том, что смещение (offset) ячейки памяти с именем SOURCE помещается в РОН ВХ. Естественно, в программе эта команда должна предшествовать команде пересылки с косвенной адресацией. Т.к. содержимое регистра легко изменить в ходе выполнения программы, данный способ адресации позволяет динамически назначить адрес операнда для некоторой машинной команды. Это свойство применяется для организации циклических вычислений и для работы со структурами данных типа таблиц и массивов. Так, командами
MOV BX, offset SOURCE M1: MOV AX, [BX] INC BX INC BX
возвращаясь в цикле на метку М1 можно организовать последовательную пересылку в регистр АХ всех элементов массива SOURCE.
Еще пример. Пусть в сегменте данных описан вектор TABL DB 12,15,16,10,8,2,5,0. Ниже первая команда загружает адрес вектора TABL в базовый регистр ВХ, а следующая команда заменяет первый байт в векторе на нулевое значение:
MOV BX,OFFSET TABL MOV BYTE PTR [BX],0
после выполнения этих программных инструкций содержимое вектора будет: TABL DB 0,15,16,10,8,2,5,0.
MOV AX, [BX+SII].
Смешанная непосредственная адресация ячеек памяти имеет несколько вариантов:
MOV AX, offset pole.
Здесь в качестве непосредственного операнда берется смещение адреса переменной pole;
MOV AX, [SI+const],
причем смещение, обозначенное const, может быть задано числом, идентификатором константы, смещением адреса переменной (offset), или их комбинацией в виде простого выражения;
MOV AX, [BX+const].
Форма записи смещения относительно базы может быть любой из 3-ех нижеприведенных:
MOV AX, [BX]+4, MOV AX, 4[BX], MOV AX, [BX+4].
Это примечание относится и к форме записи команд с индексированием (предыдущий вид адресации);
MOV AX, pole[BX+SI+const].
Адресация с базированием и индексированием очень полезна при работе с двумерными массивами и таблицами. В ней исполнительный адрес вычисляется как сумма значений базового регистра, индексного регистра и (возможно) сдвига. В случае двумерного массива базовый адрес может содержать начальный адрес массива, а значения сдвига и индексного регистра могут содержать смещения по строке и столбцу. Допустимыми форматами команд являются следующие записи:
MOV AX, [BX+2+DI], MOV AX, [DI+BX+2] MOV AX, [BX+2][DI] MOV AX, [BX+2+DI] MOV AX, [BX][DI+2] MOV AX, NUMBER [BP][SI].
Дата добавления: 2014-10-15; Просмотров: 582; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |