Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ARKhITEKTURA_INFORMATsIONN_Kh_SISTEM.docx
Скачиваний:
7
Добавлен:
24.09.2019
Размер:
176.6 Кб
Скачать
  1. Способы обращения к памяти эвм.

Режимы адресации данных:

  1. Регистровая адресация.

  2. Непосредственная адресация.

  3. Прямая адресация.

  4. Косвенная регистровая адресация.

  5. Адресация по базе.

  6. Прямая адресация с индексированием.

  7. Адресация по базе с индексированием.

Микропроцессор выбирает один из семи режимов адресации по значению поля режима команды. Ассемблер присваивает то или иное значение полю режима в зависимости от того, какой вид имеют операнды в исходной программе. Напри­мер, если вы написали MOV АХ,ВХ то Ассемблер закодирует оба операнда (АХ и ВХ) для регистровой адресации. Однако если Вы заключили операнд-источник в квадратные скобки:

MOV AХ,[ВХ] то Ассемблер закодирует операнд-источник для косвенной регистровой адреса­ции.

В табл. 1 приведены форматы операндов языка ассемблера для всех семи режимов адресации, реализуемых микропроцессором 8x86, и для каждого форма­та указано, какой из регистров сегмента используется для вычисления физическо­го адреса. Обратите внимание, что во всех режимах предполагается доступ к сегменту данных (т. е. регистром сегмента служит регистр DS), и только в тех случаях, когда используется регистр ВР, предполагается доступ к сегменту стека (т. е. регистром сегмента служит регистр SS).

Важное замечание: при исполнении команд микропроцессора 8x86, манипулирующих строками, предполагается, что регистр DI указывает на ячейку дополнительного сегмента, а не сегмента данных. Таким образом, в качестве регистра сегмента эти команды используют регистр ES. Все другие команды исполняются по правилам, описанным в табл.1.

Таблица 1. Режимы адресации микропроцессора 8x86

Режим адресации

Формат операнда

Регистр сегмента

Регистровый

регистр

Не используется

Непосредственный

данное

Не используется

Прямой

сдвиг

метка

DS

DS

Косвенный регистровый

[ВХ]

[ВР]

[DI]

[SI]

DS

SS

DS

DS

По базе

[ВХ] + сдвиг

[ВР] + сдвиг

DS

CS

Прямой с индексированием

[DI] + сдвиг

[SS] + сдвиг

DS

DS

По базе с индексированием

[BX][SI] + сдвиг

[ВХ] [DI] + сдвиг

[ВР] |S1] + сдвиг

[ВР] [DI] + сдвиг

DS

DS

SS

SS

Примечания к таблице:

1. Компонент сдвиг при адресации по базе с индексированием необязателен.

2. Операнд регистр может быть любым 8-ми 16-и битовым регистром, кроме регистра IP.

3. Операнд данное может быть 8- или 16-битовым значением константы.

4. Компонент сдвиг может быть 8- или 16-битовым значением смещения со знаком.

1,2. Регистровая и непосредственная адресация

При регистровой адресации микропроцессор 8x86 извлекает операнд из регистра (или загружает его в регистр). Например, команда MOV AХ,СХ копирует 16-битовое содержимое регистра счетчика СХ в аккумулятор АХ. Содер­жимое регистра СХ не изменяется. В данном примере микропроцессор 8x86 ис­пользует регистровую адресацию для извлечения операнда-источника из регистра СХ и загрузки его в регистр-приемник АХ.

Непосредственная адресация позволяет Вам указывать 8- или 16-битовое значение константы в качестве операнда-источника. Эта константа содержится в команде (куда она помещается Ассемблером), а не в регистре или в ячейке памя­ти. Например, команда MOV СХ,500 загружает значение 500 в регистр СХ, а команда MOV CL,-30 загружает значение - 30 в регистр CL.

Чтобы избежать трудностей, помните, что допустимые значения для 8-битовых чисел со знаком ограничены диапазоном от -128 (80Н) до 127 (7FH), а допустимые значения 16-битовых чисел со знаком — диапазоном от —32768 (8000Н) до 32767 (7FFFH). Максимальные значения 8-битовых чисел без знака равны соответствен­но 255 (OFFH) и 65535 (OFFFFH).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]