- •Предпосылки использования микропроцессоров в современных электронных приборах и устройствах и тенденции их развития.
- •Классификация микропроцессоров.
- •Ф уУиС ункциональная схема эвм.
- •Понятие об архитектуре микропроцессов.
- •Характеристики и особенности микропроцессов с микропрограммным управлением и с фиксированным набором команд. Risc процессоры.
- •Общие принципы выполнения команд в микропроцессах. Временные интервалы.
- •Состав и назначение регистров в микропроцессах.
- •Набор и характеристики команд в микропроцессорах.
- •Алу, блок управления и синхронизации.
- •1 Шина данных -адресное алу:
- •Регистровое алу
- •Организация стековой памяти.
- •1002 – След операция 1002 – тек операция
- •Режим адресации с автоувеличением и косвенная адресация с автоувеличением (на примере микро эвм "Электроника - 60").
- •С автоувеличением (регистровый)
- •1002 – След операция 1002 – тек операция
- •Косвенный с автоувеличением
- •1002 – След операция 1002 – тек операция
- •Режим адресации с автоуменьшением и косвенная адресация с автоуменьшением (на примере микро эвм "Электроника - 60").
- •С автоуменьшением (регистровый)
- •1002 – След операция 1002 – тек операция
- •Косвенный с автоуменьшением
- •1002 – След операция 1002 – тек операция
- •Индексные методы адресации (на примере микро эвм "Электроника - 60").
- •Индексный (адресация со смещением)
- •1004 – След команда 1004 – тек команда
- •Косвенный индексный
- •1004 – След команда 1004 – тек команда
- •Методы адресации с использованием программного счетчика в микро эвм "Электроника - 60".
- •Методы адресации, используемые во всех микропроцессорах.
- •Регистры микропроцессора i8086.
- •Формирование адреса в микропроцессоре i8086.
- •Характеристики команд пересылки данных в микропроцессорах.
- •Выполнение команд пересылки данных в микропроцессорах.
- •Характеристики команд преобразования данных в микропроцессорах.
- •Выполнение команд переходов в микропроцессорах.
- •1 РегКом м4т
- •Вызов подпрограммы
- •Структуры ввода-вывода.
- •Программирование на машинном языке.
- •Программирование на языке Ассемблер. Кросс- и резидентный ассемблеры.
- •Директивы и макрокоманды ассемблера.
- •*Понятие о прерываниях в микропроцессорах. Принципы организации обслуживания прерываний.
- •*1Структуры прямого доступа к памяти. Функции, выполняемые контроллером прямого доступа к памяти.
Выполнение команд переходов в микропроцессорах.
1
ША
М1Т
РС
СУиС
1М2Т
ЧтП
1
ШД
М3Т
РегКом
1 РегКом м4т
РС = РС +1
ДешКом
СБ = СБ – 1 = 2
СУиС
СУиС
2
ША
РС
ШД
М1Т
2М2Т
ЧтП
2М3Т
РегА LB
PC = PC + 1СБ = СБ – 1 = 1
3
ША
РС
М1Т
3
СУиС
М2Т
ЧтП
3
ШД
РегА HB
М3ТРС = РС + 1
СБ = СБ – 1 = 0
ПРОВЕРИТЬ ФЛАГ ZERO!
Если установлен, то продолжаем… если НЕТ, то КОНЕЦ
4
ША
SP
ШД
М1Т
4М2Т
HB PC
4
СУиС
М3Т
SP = SP – 1
ЗпП
ША
SP
5М1Т
5
ШД
LB PC
М2Т
5
СУиС
М3Т
SP = SP - 1
ЗпП
ША
РС
5М4Т
HB РегА LB
Характеристики специальных команд в микропроцессорах
Выполнение специальных команд в микропроцессорах.
Организация разветвлений в программах.
Организация подпрограмм.
Вызов подпрограммы
Обращение к подпрограмме реализуется при поступлении в микропроцессор специальной команды CALL (в некоторых процессорах эта команда имеет мнемоническое обозначение JSR – Jump-to-SubRoutine), которая указывает адрес первой команды вызываемой подпрограммы. Этот адрес загружается в PC, обеспечивая в следующем командном цикле выборку первой команды подпрограммы. Предварительно выполняется процедура сохранения в специальном регистре или ячейке памяти текущего содержимого PC, где хранится адрес следующей команды основной программы, чтобы обеспечить возвращение к ней после выполнения подпрограммы. Возврат к основной программе реализуется при поступлении команды RETURN (мнемоническое обозначение RET), завершающей подпрограмму. По этой команде сохранявшееся содержимое PC снова загружается в программный счетчик, обеспечивая выполнение команды, которая в исходной программе следовала за командой CALL.
Особенность этой процедуры состоит в том, что большинство микропроцессоров обеспечивают возможности вложения подпрограмм, то-есть реализуют при выполнении подпрограммы вызов новой подпрограммы с последующим возвращением к предыдущей подпрограмме (рис.1.3). При вложении нескольких подпрограмм требуется сохранение нескольких промежуточных значений содержимого PC и последовательная загрузка этих значений в PC при возврате к предыдущим подпрограммам и к основной программе.
Рис.1.3. Последовательный вызов (вложение) подпрограмм
Для реализации этой процедуры используется стек – специальная память магазинного типа, работающая по принципу «последний пришел – первый ушел» (стек типа LIFO – “Last In – First Out”). Существуют различные варианты реализации стека.
Рис.1.4. Варианты реализации стека: регистровый стек (а) и
стек, реализуемый в ОЗУ (б)
Регистровый стек (рис.1.4,а) реализуется с помощью реверсивных сдвиговых регистров. Каждая команда CALL вызывает ввод в стек очередного содержимого PC. По команде RETURN направление сдвига изменяется, и производится извлечение из стека последнего поступившего содержимого PC. Таким образом, обеспечивается выполнение вложенных подпрограмм. Возможное число вложенных подпрограмм определяется глубиной стека, то есть разрядностью используемых регистров сдвига. Если число вложений превышает глубину стека, первые из введенных в стек значений PC теряются, то есть возврат к основной программе не будет обеспечен. Поэтому при использовании регистрового стека необходим строгий контроль за числом вложений. Такая реализация стека применяется в системах, решающих задачи с ограниченным числом вложенных подпрограмм (обычно не более 10-20).
Значительно более широкие возможности вложения подпрограмм обеспечивает реализация стека в ОЗУ (рис.1.4,б). В этом случае часть ОЗУ выделяется для работы в качестве стека. Адресация к ячейкам стека производится с помощью специального регистра – указателя стека SP (Stack Pointer), который вводится в состав УУ процессора. Регистр SP содержит адрес верхней заполненной ячейки стека, в которой хранится значение PC, записанное при выполнении команды CALL. При поступлении новой команды CALL содержимое SP автоматически уменьшается на 1, адресуя следующую, еще незаполненную ячейку стека. Полученный адрес (SP-1) выдается на шину A, а на шину данных D поступает содержимое PC, которое должно сохраняться в стеке. Таким образом, производится последовательное заполнение ячеек стека «снизу-вверх», при этом SP всегда адресует вершину стека. По команде RETURN текущее содержимое SP выдается на шину A, и по шине D производится считывание с вершины стека последнего записанного значения PC. После этого содержимое SP увеличивается на 1, адресуя предыдущее значение PC, хранящееся в стеке. Так как ОЗУ обычно имеет значительный объем, то для размещения стека можно выделить достаточно большое количество ячеек памяти, обеспечивая необходимый уровень вложения подпрограмм.