
- •Архитектура информационных систем
- •А рхитектура фон Неймана
- •Принцип последовательного программного управления
- •Программная модель микропроцессора.
- •Пользовательские регистры
- •Регистры общего назначения
- •Сегментные регистры
- •Регистры состояния и управления
- •Регистры системных адресов
- •Регистры отладки
- •Способы обращения к памяти эвм.
- •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).