Справочник по языку Ассемблера IBM PC


Структура машинной команды - часть 4


  • Байт масштаб-индекс-база (байт sib)

    используется для расширения возможностей адресации операндов.


  • На наличие байта sib в машинной команде указывает сочетание одного из значений 01 или 10 поля mod и значения поля r/m= 100. Байт sib состоит из трех полей:

    • поля масштаба ss. В этом поле размещается масштабный множитель для индексного компонента index, занимающего следующие три бита байта sib.


    • В поле ss может содержаться одно из следующих значений: 1, 2, 4, 8.


      При вычислении эффективного адреса на это значение будет умножаться содержимое индексного регистра. Более подробно с практической точки зрения эта расширенная возможность индексации рассматривается на уроке 12 при обсуждении вопросов работы с массивами;

    • поля index — используется для хранения номера индексного регистра, который применяется для вычисления эффективного адреса операнда;

    • поля base — используется для хранения номера базового регистра, который также применяется для вычисления эффективного адреса операнда. Напомню, что в качестве базового и индексного регистров могут использоваться практически все регистры общего назначения.

  • Поле смещения в команде. 8, 16 или 32-разрядное целое число со знаком, представляющее собой, полностью или частично (с учетом вышеприведенных рассуждений), значение эффективного адреса операнда.

  • Поле непосредственного операнда. Необязательное поле, представляющее собой 8, 16 или 32-разрядный непосредственный операнд. Наличие этого поля, конечно, отражается на значении байта modr/m.




  • Начало  Назад  Вперед



    Книжный магазин