
- •Часть II
- •____________________________________
- •1. Классификация микропроцессоров
- •2. Архитектура микропроцессора
- •2.1 Основные характеристики микропроцессора
- •2.2 Логическая структура микропроцессора
- •2.3 Устройство управления
- •2.4 Особенности программного и микропрограммного управления
- •2.5 Система команд
- •2.6 Режимы адресации
- •2.7 Типы архитектур
- •3. Организация ввода/вывода в микопроцессорной системе
- •3.1 Программная модель внешнего устройства
- •3.2 Форматы передачи данных
- •3.3 Параллельная передача данных
- •3.4 Последовательная передача данных
- •3.4.1 Синхронный последовательный интерфейс
- •3.4.2 Асинхронный последовательный интерфейс
- •3.5 Способы обмена информацией в микропроцессорной системе
- •3.5.1 Программно-управляемый ввод/вывод
- •3.5.2 Организация прерываний в микроЭвм
- •3.5.3 Организация прямого доступа к памяти
- •4. Память микропроцессорной системы
- •4.1 Микросхемы памяти в составе микропроцессорной системы
- •4.2 Буферная память
- •4.3 Стековая память
- •5. Микропроцессор Intel 8086(88)
- •5.1. Поставляемая разработчиком информация
- •5.2. Схема и назначение выводов
- •5.3. Архитектура микропроцессора Intel 8080
- •§ 3.2). Таким образом, мп ветвится в подпрограмму обслуживания прерываний, которая отвечает на
- •5.4. Использование регистра адреса/данных
- •5.5. Использование указателя стека
- •6. Программирование микропроцессора
- •6.1. Машинный код и ассемблер
- •6.2. Простой состав команд
- •6.3. Состав команд арифметических действий
- •6.4. Состав команд логических операций
- •6.5. Состав команд операций передачи данных
- •6.6. Состав команд операций ветвления
- •6.7. Состав команд вызова подпрограмм и возврата в основную программу
- •6.8. Состав команд прочих опреаций
- •6.9. Способы адресации
- •7. Проектирование микропроцессорных систем
- •7.2 Ошибки, неисправности, дефекты
- •7.3 Отладка
- •7.4 Обнаружение ошибки и диагностика неисправности
- •7.5 Функции средств отладки
- •7.6 Этапы проектирования микропроцессорных систем
- •7.7 Источники ошибок
- •7.8 Проверка правильности проекта
- •7.9 Автономная отладка
- •7.10 Отладка программ
- •7.11 Комплексная отладка микропроцессорных систем
- •8. Отличия Intel 8086 (88) от современных микропроцессоров
- •1. Классификация микропроцессоров
6.2. Простой состав команд
Введем состав команд, относящихся к типовому микропроцессору, приведенному на рис. 5.6.
Мнемоника и КОП, которые будут использованы, представляют собой подсостав команд микропроцессоров
Intel 8080/8085. На рис. 6.1 в сокращенном варианте приведены регистры типового МП, предоставляемые
программисту. Вверху справа мы видим универсальный 8-разрядный регистр-аккумулятор А, а слева
показан 8-разрядный регистр состояния. В составе этого регистра индикатор переноса CY находится в
позиции 7, а индикатор нуля Z — в позиции 0. Позиции бит от первого до шестого регистра состояния в
типовом МП не используются, но в выпускаемых МП индикаторов больше, чем здесь. Во второй строке на
рис. 6.1 расположены регистры H и L. Это универсальные регистры адреса/данных. Они могут
использоваться раздельно или в форме пары регистров (мы говорим тогда о паре регистров HL). В
последнем случае они используются как указатель адреса.
Рис. 6.1 Программно-доступные регистры типового МП
Снизу на рис. 6.1 находятся два специальных 16-разрядных регистра. Счетчик команд PC (Program
Counter- программный счетчик) указывает МП следующую для выполнения команду. Указатель стекаSP
(Stack Pointer) содержит адрес вершины стека. Сам стек находится в ОЗУ.
Состав команд такого типового микропроцессора разделен на семь категорий: арифметические;
логические; передачи данных; ветвления; вызова подпрограмм; возврата из подпрограмм; прочие.
Типовой микропроцессор в состоянии выполнить только 67 различных команд из 239, которые
входят в состав МП Intel 8085.
6.3. Состав команд арифметических действий
Первыми рассмотрим команды арифметических действий. Они сведены в табл. 6.3 и содержат
команды сложить, вычесть, инкрементировать, декрементировать, сравнить. Заметим по данным табл. 4.3,
что существуют четыре команды сложения. Аккумулятор (регистр А) содержит одно из слагаемых. Каждая
команда точно оговаривает различные источники другого слагаемого.
Рассмотрим первую из команд сложения в табл. 6.3. Команда сложить непосредственно является
двухбайтовой. Ее формат КОП (в этом случае С6Н) содержится в первом байте команды, непосредственно
за ним — во втором байте — находятся данные для сложения с содержимым аккумулятора. Команда ADI
выполняется по схеме, приведенной на рис. 6.2, а. Данные, находящиеся в памяти непосредственно за КОП,
складываются с содержимым аккумулятора (0000 11112). Сумма (0001 11112) помещается в аккумулятор.
Табл. 6.3 Состав команд арифметических операций типового микропроцессора
Второй является команда сложить содержимое регистров L иА (мнемоника ADDL), на рис. 6.2,б
показано ее выполнение. Содержимое аккумулятора (0000 10002) складывается с содержимым регистра L
(0000 00012), получающаяся в результате выполнения команды ADD L сумма (0000 10012) помещается в
аккумулятор.
Рис. 6.2 Выполнение МП операций сложения
Третья команда в табл. 6.3 представляет собой однобайтовую команду сложить содержимое
регистров H и A (мнемоника ADD H). Это другая команда сложения содержимого одного регистра с
содержимым другого (как и предшествующая), и она выполняется в последовательности, приведенной на
рис. 6.2, в. Содержимое регистраА (0010 11002) сложено с содержимым регистра H (0001 00112), сумма
(ООП 11112) помещена в аккумулятор.
Четвертая строка таблицы представляет собой однобайтовую команду сложить с косвенным
регистром (мнемоника ADD M). Адрес данного слагаемого числа задан в более сложной форме с
использованием способа косвенной регистровой адресации. Рисунок 6.2, г является примером выполнения
команды ADD M. ПараHL указывает 16-разрядный адрес памяти, т.е. LOC (Location - место расположения).
Содержимое LOC (0000 00112) сложено с содержимым аккумулятора (0110 00002), сумма (0110 00112)
помещена в аккумулятор. Команды косвенного сложения используют в качестве указателя адреса 16-
разрядный регистр (обычно пару HL).
В силу внутренних особенностей АЛУ не обладает возможностями вычитания, оно осуществляет
сложение, представляя вычитаемое в форме дополнительного кода и затем складывая его. Вычитание
двоичных чисел осуществляют сложением первого числа со вторым, представленным в форме
дополнительного кода, пренебрегая переполнением. Микропроцессор использует переполнение для
установления индикатора переноса. Вычитая, МП инвертирует переполнение, и результат становится
содержимым индикатора переноса СY. Переполнение 1 инвертируется и сбрасывает индикатор переноса в 0.
Когда в ходе вычитания индикатор переноса сбрасывается, это значит, что переноса не было и что первое
число больше второго.
Таким образом, арифметические операции типового микропроцессора могут выполняться по
большому числу команд из всего состава. Многие МП снабжены несколькими дополнительными
арифметическими командами и индикаторами в их регистре состояния. Использование индикатора при
ветвлениях и переходах по результатам операций будет впоследствии рассмотрено.