
- •Введение
- •Список сокращений
- •1. Архитектура современных микропроцессоров
- •1.1. Термины и определения
- •1.2. Микропроцессорные системы управления
- •1.3. Архитектурные особенности микропроцессоров
- •1.3.1. Гарвардская и принстонская архитектура
- •1.3.2. Архитектура системы команд (cisc и risc)
- •1.4. Корпус микропроцессоров
- •1.5. Технология изготовления кристаллов
- •1.6. Общие положения об обозначении импортных цифровых микросхем
- •1.6.1. Система обозначений микросхем производства Atmel
- •2. Структура микропроцессорной системы
- •2.1. Модуль питания
- •2.2. Модуль сброса и синхронизации
- •2.2.1. Сторожевой таймер
- •2.2.2. Тактирование системы
- •2.3. Модуль памяти
- •2.3.1. Супервизор напряжения
- •2.3.2. Память микропроцессорного устройства
- •2.4. Контроллер прерываний
- •2.5. Терминал
- •2.6. Центральный процессор
- •2.7. Суперскалярный конвейер
- •3. Программирование микропроцессорных устройств
- •3.1. Основные этапы проектирования и отладки программного обеспечения
- •3.2. Языки высокого уровня
- •3.3. Язык Ассемблера
- •3.3.1. Способы адресации на языке ассемблера
- •3.4. Алгоритм выполнения команды
- •3.5. Типы данных микропроцессора
- •4. Микропроцессоры с архитектурой х86
- •4.1. Микропроцессор Pentium
- •4.2. Микропроцессор Pentium 4
- •4.3. Микропроцессоры компании amd
- •4.4. Микропроцессор к7
- •5. Микропроцессоры с архитектурой x64
- •5.1.Микропроцессор Itanium ia-64
- •Отличия архитектур процессоров х86 и ia-64
- •5.2. Микропроцессоры семейства Hammer
- •Микропроцессоры c архитектурой power pc и arm
- •6.1. Микропроцессоры с архитектурой power
- •Процессоры arm
- •6.2. Микропроцессоры с архитектурой arm
- •4. Микроконтроллеры семейства mcs-51
- •4.1. Структура микроконтроллеров семейства mcs-51
- •4.2 Способы адресации и система команд микроконтроллеров семейства mcs-51
- •4.3. Функции выводов
- •5. Микроконтроллеры семейства Motorola
- •5.1. Общая структура микроконтроллеров семейства 68нс05/705/08
- •4.2.2. Регистровая модель микроконтроллеров семейства 68нс05/705/08
- •4.2.3. Способы адресации и система команд микроконтроллеров семейства 68нс05/705/08
- •6. Микроконтроллеры avr компании Atmel
- •5.1. Архитектура микроконтроллеров avr
- •5.2. Процессор микроконтроллера avr
- •5.3. Запоминающее устройство FlashRom
- •5.4. Периферийные устройства
- •Микроконтроллеры семейства piCmicro
- •12.1. Младшие подсемейства picMicro
- •Основные характеристики микроконтроллеров младшего подсемейства
- •12.2. Архитектура микроконтроллеров младшего подсемейства
- •Стандартный набор операций алу микроконтроллеров PlCmicro
- •12.3. Среднее подсемейство picMicro
- •12.5. Старшее подсемейство picMicro
- •12.6 Архитектура микроконтроллеров старшего подсемейства
- •Ввод-вывод данных микропроцессорной системы
- •6.1 Аналоговый ввод/вывод микропроцессорной системы
- •6.2. Таймеры микропроцессорной системы
- •6.3. Параллельный ввод-вывод данных
- •6.2.2. Асинхронный последовательный обмен
- •6.2.3 Синхронный последовательный обмен
- •6.3. Микроконтроллерная сеть
- •6.3.1 Протокол i2c
- •6.3.2. Протокол can
- •Характеристика протокола can
- •Выбор скорости передачи данных исходя из расстояния
- •6.3.3. Протокол rs-485 и rs-422
- •Стандартные параметры интерфейсов rs-422 и rs-485
- •Лекция 7 Микропроцессорные системы управления
- •7.1. Подключение светодиодов
- •7.2. Подключение 7-сегментных светодиодных индикаторов
- •7.3. Ввод с матричной клавиатуры
- •7.4. Управление жидкокристаллическим индикатором
- •7.5. Управление соленоидом и реле
- •7.6. Управление электродвигателем
- •6.5.1. Управление шаговым двигателем
- •7.6. Управление мощной нагрузкой
- •Лекция 8 Цифровая обработка сигналов
- •8.1. Типовые задачи решаемые цос
- •8.2. Способы реализации алгоритмов цос
- •8.3. Структура процессора цифровой обработки сигналов
- •8.4. Пцос с фиксированной и плавающей точкой
- •8.5. Гибридные процессоры
- •Библиографический список
- •Фирмы-производители 8-, 16- и 32-разрядных микроконтроллеров
- •Высокопроизводительные 8-разрядные risc микроконтроллеры семейства avr
- •1.6.2. Система обозначений микросхем производства
- •1.6.3. Система обозначений микросхем производства Motorola
- •1.6.4. Система обозначений микросхем производства
3.3.1. Способы адресации на языке ассемблера
Решить проблему сокращения разрядности команды только за счет сокращения количества указываемых в команде операндов и применения регистровой памяти невозможно. Для этой цели служат различные способы адресации операндов. Кроме того, применение нескольких способов адресации повышает гибкость программирования, так как в каждом конкретном случае позволяет обеспечить наиболее рациональный способ доступа к информации в памяти.
В двухоперандной машинной команде возможны следующие сочетания операндов:
- регистр-регистр;
- регистр-память;
- память-регистр;
- непосредственный операнд-регистр;
- непосредственный операнд-память.
К основным способам адресации относятся следующие: прямая, непосредственная, косвенная, относительная.
Прямая адресация – это простейший вид адресации операнда в памяти, так как эффективный адрес содержится в самой команде и для его формирования не используется никаких дополнительных источников или регистров. Формальное обозначение прямой адресации представлено на рис. 22:
Рис. 22. Прямая адресация
Главным элементом кода команды является код операции (КОП), что определяет, какие действия будут выполнены по данной команде. Аi – адреса операндов, которые содержаться в i-м адресном поле команды.
Допускается использование прямой адресации при обращении, как к основной, так и к регистровой памяти.
Непосредственная адресация – это когда в команде содержится не адрес операнда, а непосредственно сам операнд. Формальное обозначение непосредственной адресации представлено на рис. 23:
Рис. 23. Непосредственная адресация
Непосредственная адресация позволяет повысить скорость выполнения операции, так как в этом случае вся команда, включая операнд, считывается из памяти одновременно и на время выполнения команды хранится в процессоре в специальном регистре команд. Однако при использовании непосредственной адресации появляется зависимость кодов команд от данных, что требует изменения программы при каждом изменении непосредственного операнда.
При косвенной адресации адресная часть команды указывает адрес ячейки памяти или номер регистра, в которых содержится адрес операнда. Формальное обозначение косвенной адресации представлено на рис. 24, 25.
Применение косвенной адресации операнда из оперативной памяти при хранении его адреса в регистровой памяти существенно сокращает длину поля адреса, одновременно сохраняя возможность использовать для указания физического адреса полную разрядность регистра.
Рис. 25. Косвенная адресация с указанием адреса ячейки памяти
Рис. 25. Косвенная адресация с указанием адреса регистровой памяти
Недостаток этого способа в том, что необходимо дополнительное время для чтения адреса операнда. Вместе с тем он существенно повышает гибкость программирования. Изменяя содержимое ячейки памяти или регистра, через которые осуществляется адресация, можно, не меняя команды в программе, обрабатывать операнды, хранящиеся по разным адресам.
Косвенная адресация не применяется по отношению к операндам, находящимся в регистровой памяти.
Относительная адресация используется тогда, когда память логически разбивается на блоки, называемые сегментами. В этом случае адрес ячейки памяти содержит две составляющих: адрес начала сегмента (базовый адрес) и смещение адреса операнда в сегменте. Адрес операнда определяется как сумма базового адреса и смещения относительно этой базы.
Для задания базового адреса и смещения могут применяться ранее рассмотренные способы адресации. Как правило, базовый адрес находится в одном из регистров регистровой памяти, а смещение может быть задано в самой команде или регистре. Рассмотрим два примера представленные на рис. 26 и 27.
В первом примере адресное поле команды состоит из двух частей, в одной указывается номер регистра, хранящего базовое значение адреса (начальный адрес сегмента), а в другом адресном поле задается смещение, определяющее положение ячейки относительно начала сегмента. Именно такой способ представления адреса обычно и называют относительной адресацией.
Рис. 26. Относительная адресация с использованием суммы адреса
базового регистра и смещения относительно этой базы
Рис. 27. Относительная адресация с использованием суммы адреса
базового регистра и адреса индексного регистра
Во втором примере первая часть адресного поля команды также определяет номер базового регистра, а вторая содержит номер регистра, в котором находится смещение. Такой способ адресации чаще всего называют базово-индексным.
Главный недостаток относительной адресации это большое время вычисления физического адреса операнда. Но существенное преимущество этого способа заключается в возможности создания "перемещаемых" программ, которые можно размещать в различных частях памяти без изменения команд программы. То же относится к программам, обрабатывающим по единому алгоритму информацию, расположенную в различных областях запоминающего устройства. В этих случаях достаточно изменить содержимое базового адреса начала команд программы или массива данных, а не модифицировать сами команды.