
- •Замковец с.В. Левин н.А. Попкова е.Я. Архитетура микропроцессоров
- •Удк 681.3.06
- •Классификация микропроцессоров по архитектуре
- •Архитектура микропроцессоров 80х86
- •2.1. Используемые типы данных
- •2.2. Регистры микропроцессоров
- •2.3. Режимы адресации
- •2.4. Управление стеками
- •2.5. Сегментная организация памяти
- •Система команд микропроцессоров
- •3.2.Команды передачи данных
- •Команды двоичной арифметики
- •Команды десятичной арифметики
- •Логические команды
- •Команды сдвигов
- •Команды обработки бит и байт
- •Команды обработки цепочек
- •Команды передачи управления
- •3.9.1. Команды условных переходов
- •3.9.2 Команды безусловных переходов
- •3.9.3 Команды вызова подпрограмм
- •3.9.4 Команды возврата из подпрограмм
- •4. Прерывания
- •4.1. Прерывания в реальном режиме
- •Защита по привилегиям
- •5.1. Определение уровней привилегий
- •Вычисления с плавающей запятой
- •6.1. Форматы чисел с плавающей запятой
- •6.3. Регистры сопроцессора
- •Mmx архитектура
- •7.1. Форматы представления данных
- •7.2. Арифметика с насыщением
- •7.3. Mmx регистры
- •7.4. Система команд mmx
- •1. Классификация микропроцессоров по архитектуре ... 8
- •2. Архитектура микропроцессоров 80х86 ………………...10
2.3. Режимы адресации
Способ определения в команде адреса операнда или адреса перехода называется режимом адресации. Существуют следующие режимы адресации.
При использовании неявной адресации операнд адресуется неявно, т.е. в команде отсутствуют в явном виде поля для адресации этого операнда.
При использовании регистровой адресации операнд находится в одном из внутренних регистров микропроцессора.
В режиме непосредственной адресации операнд находится в самой команде, т.е. хранится вместе с командой в сегменте кода.
Остальные режимы адресации осуществляют обращение к памяти. При использовании прямой адресации в команде содержится адрес, по которому процессор выполняет обращение к памяти. Другие режимы используют косвенную адресацию, при этом адрес, по которому процессор может обратиться к памяти, находится либо в регистре общего назначения, либо же находится в ячейке памяти. Если адрес находится в регистре, то такая адресация называется косвенной регистровой.
В качестве регистра, содержащего косвенный адрес, может быть использован любой регистр, кроме регистра ESP, который используется для работы со стеком. Такой режим адресации называется базовой или индексной адресацией. Разновидностью базовой адресации является базовая адресация со смещением, при этом к значению адреса, находящемуся в базовом регистре, прибавляется целое число, рассматриваемое как число со знаком.
Следующий режим косвенной адресации – это базовая индексная адресация, при которой адрес рассчитывается при сложении содержимого двух регистров общего назначения. Разновидностью этой адресации является базовая индексная адресация со смещением, при этом к содержимому суммы двух регистров прибавляется целое число, указанное в команде.
Начиная с микропроцессора 80386 появилась возможность реализовать базовую индексную адресацию, при которой содержимое индексного регистра может быть умножено на коэффициент, равный 1, 2, 4 или 8.
Для указания того, какой режим адресации используется, служит специальный байт, который называется байтом MOD R/M, и в зависимости от значений отдельных полей этого байта и будет использован тот или иной режим адресации. Если же должен быть использован режим адресации, при котором содержимое индексного регистра умножается на какой-либо коэффициент, то в этом случае после байта MOD R/M в команде микропроцессора следует байт, который называется SIB байт.
2.4. Управление стеками
Одним из сегментов, предназначенных для временного хранения данных при работе микропроцессора, является стек, который располагается в стековом сегменте. Стек – это одномерная структура данных, добавление элемента в которую (или исключение элемента из которой) производится с одного конца, который называется вершиной стека. Стек работает по принципу LIFO (last-in-first-out - последний вошел - первый вышел).
На вершину стека указывает регистр ESP и в вершине стека хранится последний записанный байт. Микропроцессор не может записывать в стек единичный байт, а могут записываться только слова или двойные слова. Для того, чтобы записать в стек какую-либо информацию, микропроцессор декрементирует регистр ESP на два или четыре, в зависимости от длины включаемой в стек информации, и после этого по адресу, указываемому регистром ESP, осуществляет запись.
При считывании информации из стека микропроцессор использует значение регистра ESP для указания, откуда брать из стека операнд, а после считывания информации из стека микропроцессор инкрементирует регистр ESP на два или четыре, в зависимости от длины считываемой информации из стека.