Меню сайта

Урок 24. Байт MOD R-M

Как -же адресная — информацияпередается — микропроцессору в машинном
— — — языке? -8088 — использует — почти -для — всех — операций адресации байт
— — — MOD-R/M -(байт — режима — адресации -и — регистра/модификатора — прим.
— — — перев.). -Фиг.3.4 — показывает — формат -этого — байта — команды. -Байт
— — — MOD-R/M следует — за байтом кода операции — иопределяет один операнд
— — — памяти команды 8088. Этот байт можетвместо ячейки памяти указывать
— — — и регистр. — — — Такое — единство -структуры — позволяет — реализовать -все
— — — возможности адресации операндов.
— — — — — -ЪДДДДДДДВДДДДДДДДДДДВДДДДДДДДДДДї
— — — — — — і — — — і — — — — — — -і — — — — -і
— — — — — -АДДДБДДДБДДДБДДДБДДДБДДДБДДДБДДДЩ
— — — — — — — -Режим — — Заданная — — — Регистр-
— — — — — — — — — — — — — -команда модификатор

— — — — — Режим — — — — — — Смещение
— — — —————————————————
— — — — — 00 — — — -DISP=0, нет байтов смещения
— — — — — 01 — — — —128&lt-DISP&lt-127, однобайтовое смещение
— — — — — 10 — — — —32768&lt-DISP&lt-32767, двухбайтовое смещение
— — — — — 11 — — — -В поле r/m — регистр, а не адрес

— — — — — Фиг. 3.4 Байт режима адресации ирегистра-модификатора

— — — — — Первые два — бита байта MOD-R/M определяют -выбранный способ ад-
— — — ресации. -Эти — два — бита — определяют — число -байт смещения, которые
— — — следуют за — — — байтомMOD-R/M — ни — одного, один или два. — Последние 3
— — — бита байта MOD-R/M определяют вид — адреса — одну из восьми комбина-
— — — ций базисных и индексных регистров. Этополе называется полем R/M —
— — — полем регистра/модификатора. Это тесамые — 3 бита из колноки R/M на
— — — Фиг.3.3, где показаны возможные — комбинации при адресации. Значение
— — — оставшихся 3-х — бит в середине байта -MOD-R/M зависят от конкретной
— — — команды. -Для — команды — с -двумя — операндами, — вроде -ADD, это поле
— — — указывает регистр, являющийся вторымоперандом. Для команды с одним
— — — операндом, — — — какINC, — эти три — бита обычно — — — — — составляютчасть самого
— — — кода операции. 8088 — не знает, что имеет дело — с командой INC, пока
— — — не расшифрует средние три бита байтаMOD-R/M.
— — — — — Этот же байт используется еще — в паре специальных случаев. Если
— — — в команде определен — регистр, а не — — — адрес памяти, то — в полережима
— — — помещается код — 11B, чтобы сообщить -микропроцессору, что поле — R/M
— — — содержит -код регистра, — а не — адрес памяти. — Наконец, вы — возможно
— — — заметили, что в механизме работы — с байтом MOD-R/M не предусмотрена
— — — прямая -адресация. 8088 — рассматриваеткак — прямую адресацию случай
— — — типа -[BP + — СМЕЩЕНИЕ] при — — — — — нулевом смещении. — В этом -случае поле
— — — смещения имеет длину два байта, — и в вычислении адреса не участвует
— — — ни один регистр. Из-за этого особогослучая доступ к ячейке памяти,
— — — на — — — — — которую — указывает -регистр — — BP, — в -машинном — коде — требуется
— — — однобайтовое поле смещения с нулевымзначением. Использование в той
— — — же — — — — — ситуациирегистров — BX, SI — и DI -не требует — байта смещения. В
— — — следующем пункте будет показано — еще одно различие между адресацией
— — — через регистры BP и BX.

Категория: Программирование на Ассемблере | Дата: 19.02.13

Меню раздела
Блок