Байт масштаба, индекса и базы(Scale-Index-Base — sib) используется для расширения возможностей адресации операндов. На наличие байта sib в машинной команде указывает сочетание одного из значений 01 или 10 поля mod и значения поля r/m = 100.Байт sib состоит из трех элементов (табл. 3.10).
В поле масштаба (ss) размещается масштабный множитель для индексного компонента index, занимающего следующие три бита байта sib. В поле ss может содержаться значение 1, 2, 4 или 8. При вычислении эффективного адреса на это значение будет умножаться содержимое индексного регистра. Поле index позволяет хранить номер индексного регистра, содержимое которого применяется для вычисления эффективного адреса операнда.
Поле base требуется для хранения номера базового регистра, содержимое которого также применяется для вычисления эффективного адреса операнда. В качестве базового и индексного регистров могут использоваться большинство регистров общего назначения.
По значению байта sib легко восстановить компоненты машинных команд, содержащие адрес операнда с учетом его масштабирования.
Одно значение базового регистра (base)в табл. 3.10 замещено символом звездочки (*). Это означает наличие в команде адреса смещ_32 без базы, если mod равно 00, и [ЕВР]— в противном случае.
Такой подход обеспечивает следующие режимы адресации: