Сегментная база для моффс16 / 32 - PullRequest
0 голосов
/ 06 февраля 2019

Я проходил различные инструкции MOV и сомневался относительно одной из них.Инструкция MOV moffs16 / 32, AX .Согласно руководству Intel: « Операнды moffs8, moffs16, moffs32 и moffs64 определяют простое смещение относительно базы сегмента, где 8, 16, 32 и 64 относятся к размеру данных. » Код операциидля инструкции A3, и что я хотел бы знать, какой регистр сегмента смещение относительно?Это CS, DS или ES?

1 Ответ

0 голосов
/ 06 февраля 2019

Согласно разделу 3.7.4 Указание селектора сегмента в руководстве по базовой архитектуре:

Селектор сегмента может быть задан неявно или явно.[...] Процессор автоматически выбирает сегмент в соответствии с правилами, приведенными в таблице 3-5.

SS Любая ссылка на память, которая использует регистр ESP или EBP в качестве базового регистра.

DS Все ссылки на данные, кроме тех случаев, когда они относятся к месту назначения в стеке или строке.

В инструкции в вопросе используется только одно постоянное смещение, поэтому эффективный адрес с регистрами отсутствует.Таким образом, он DS, если не переопределен префиксом.

...