Читайте также: |
|
Индексная адресация часто применяется для обработки двумерных массивов. Смещение операнда вычисляется процессором как сумма содержимого базового и индексного регистра. При этом базовыми являются регистры BX, BP, а индексными SI, DI. Применение других регистров недопустимо. Примеры такой адресации: [BX][SI], [BP][DI].
Индексная адресация с базовым регистром BX обращается в сегмент данных, а с BP – в стек. Возможна замена сегмента, она выполняется аналогично косвенной адресации.
Рассмотрим методику работы с двумерным массивом. В BX (или BP) заносится адрес начала строки массива, а в SI (DI) – смещение операнда внутри строки.
Общий вид: {<сегмент>:}[<Баз. рег>][<Инд. регистр>].
Регистры
![]() |
Поле операнда
в команде Операнд
Опер. память
Один из индексных регистров SI или DI указывает положение элемента относительно начала некоторой области памяти. Пусть, например, АОВ - имя массива значений типа Byte. Тогда можно использовать такие фрагменты:
mov si,15 {Помещаем в SI константу 15}
mov ah,AОB[si] {Пересылаем в АН 16-й по порядку байт от начала массива}
mov si,0
mov AOB[si],ah {Пересылаем полученное в самый первый элемент массива}
Дата добавления: 2014-12-19; просмотров: 81 | Поможем написать вашу работу | Нарушение авторских прав |