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

Косвенная индексная адресация со смещением очень похожа на косвенную базовую адресацию со смещением. Здесь также для формирования эффективного адреса используется один из регистров общего назначения. Но индексная адресация обладает одной интересной особенностью, которая очень удобна для работы с массивами. Она связана с возможностью так называемого масштабирования содержимого индексного регистра. Что это такое? В контексте нашего обсуждения нас интересует байт sib. При описании структуры этого байта отмечалось, что он состоит из трех полей. Одно из этих полей — поле масштаба (ss), на значение которого умножается содержимое индексного регистра. К примеру, в команде mov ax,mas[si*2] значение эффективного адреса второго операнда определяется выражением mas+(si)*2. В связи с тем, что в ассемблере нет средств индексации массивов, программисту приходится организовывать ее своими силами. Наличие возможности масштабирования существенно помогает в решении этой проблемы, но при условии, что размер элементов массива составляет 1, 2, 4 или 8 байт.