Адресация - часть 2
mov ах,[Ьх]+10 {Загружаем в АХ 10-й по счету байт от начала базы памяти по адресу DS-.BX};
Индексная адресация
Один из индексных регистров SI или DI указывает положение элемента относительно начала некоторой области памяти. Пусть, например, АОВ - имя массива значений типа Byte. Тогда можно использовать такие фрагменты:
mov si,15 {Помещаем в SI константу 15}
mov ah,АОВ[si] {Пересылаем в АН 16-й по порядку байт от начала массива}
mov si,0
mov AOB[si],ah {Пересылаем полученное в самый первый элемент массива}
Адресация по базе с индексированием
Вариант индексной адресации для случая, когда индексируемая область памяти задается своей базой. Например:
mov ax,[bx][si]
Этот тип адресации удобен при обработке двумерных массивов. Если, например, АОВ есть массив из 10x10 байт вида
var
АОВ: array [0..9,0..9] of Byte;
то для доступа к элементу АОВ [2,3] можно использовать такой фрагмент
mov bx,20 {База строки 2}
mov si,2 {Номер 3-го элемента}
mov ax,AOB[bx] [si] {Доступ к элементу}