Микропроцессоры Лекция 7 Работа ЦС (микро ЭВМ) • Пусть требуется выполнить простую операцию сложения трех чисел, например 10+5+18 = 3310. • Короткая и простая микропрограмма выполнения этой операции могла бы быть записана в следующей последовательности. • Команда 1: загрузить (LOAD) первое число (1010) в ЦП. • Команда 2: сложить (ADD) второе число (510) с первым. • Команда 3: сложить (ADD) третье число (1810) с двумя предыдущими. • Команда 4: поместить (STORE) сумму (3310) в ячейку памяти 2000Н. Работа ЦС (микро ЭВМ) Работа ЦС (микро ЭВМ) • После загрузки в память программы эти команды могли бы извлекаться из нее как команды памяти, показанной на рис. 4.10. Заметим, что первая команда программы начинается с адреса ООООН. • Эта команда (LOAD число ОАН) использует 2 байт памяти. • Первый байт памяти содержит оперативную часть команды, другой — операнд. • Код операции LOAD для микропроцессора, используемого в этом примере, будет 86Н (1000 01102). • Операнд ОАН (0000 10102) является первым числом, подлежащим загрузке в аккумулятор микропроцессора. Работа ЦС (микро ЭВМ) • Заметим, что рис. 4.10 является широко распространенным представлением содержимого памяти и адресов в шестнадцатеричной записи. • Такого рода запись принято называть - листинг программы • В реальной действующей системе такая информация представляется в форме напряжения Н-(лог.1) и L- (лог.0) уровней. • Предположим, что программа размещена в блоке ОЗУ ЦС (микро-ЭВМ) (рис, 4.1), в которую входят устройства, представленные на рис. 4.7. (архитектура ЭМП) • В таком случае рис. 4.11 иллюстрирует каждую операцию программы (LOAD, ADD, ADD, STORE). Работа ЦС (микро ЭВМ) Работа ЦС (микро ЭВМ) Операция загрузки (LOAD) первой команды подробно приведена на рис. 4.11, а и показывает, что • содержимое ячейки памяти 0001Н загружено в аккумулятор, • который содержит после этого 0000 10102 — первое слагаемое число. • В результате операции загрузки стирается предыдущее и записывается новое содержимое аккумулятора. Работа ЦС (микро ЭВМ) • Вторая команда, операция ADD, • детализирована на рис. 4.11,б. • Содержимое ячейки памяти ОООЗН (0000 01012) складывается с • содержимым аккумулятора 0000 10102, • что дает сумму 0000 11112, помещаемую в аккумулятор, и мы можем заметить, что содержимое аккумулятора изменяется при операции ADD. Работа ЦС (микро ЭВМ) • На рис. 4.11, в показана команда 3 (вторая операция ADD); • содержимое аккумулятора — сумма 000011112 сложена с содержимым ячейки памяти 0005Н, • т. е. выполняется операция 0000 1111+0001 0010=0010 0001. • Окончательно 0010 0001 появляется в аккумуляторе после второй операции ADD. Работа ЦС (микро ЭВМ) Операция STORE (РАЗМЕСТИТЬ) по команде 4 представлена на рис. 4.11, г. • Содержимое аккумулятора (001000012) • передано и размещено в ячейке памяти по адресу 2000Н. • Заметим, так как это важно, что ячейки памяти данных были идентифицированы в памяти программы двумя раздельными байтами (0007Н и 0008Н). • Ячейка памяти программы 0006Н содержит КОП В7Н прямой команды STORE (см. рис. 4.10). Работа ЦС (микро ЭВМ) Рассмотрим извлечение, декодирование и выполнение команды LOAD по адресам ООООН и 0001Н в программе. Этот тип команды будет выполнен, вероятно, за время около 2—6 мкс большинством микро-ЭВМ. Рисунок 4.12 иллюстрирует процедуру выполнения центральным процессором этой специальной операции. Работа ЦС (микро ЭВМ) Работа ЦС (микро ЭВМ) Рассмотрим сверху слева направо последовательность действий на рис. 4.12: • счетчик команд прежде всего устанавливает адрес первого этапа программы. • После этого 16-разрядный адрес передается в адресный регистр, затем на адресную шину и в память программы. • Для активизации памяти программы ЦП выдает сигнал считывания программы (1 на линии R/W), в то время как дешифратор адресов (который не входит в состав ЦП) активизирует выбор кристалла CS нулем. Работа ЦС (микро ЭВМ) • Затем счетчик команд инкрементируется до 0001Н, • ячейка памяти программы ООООН становится доступной и ее содержимое считывается на шину данных. • Код операции (86Н) команды LOAD передается в регистр ЦП. Этап извлечения КОП команды LOAD завершен. Работа ЦС (микро ЭВМ) • Затем КОП (86Н), содержащийся в регистре команды ЦП, интерпретируется дешифратором, команд. • В данном случае ЦП определяет, идет ли речь о команде LOAD непосредственно, что означает загрузку им содержимого памяти, адрес которой следует непосредственно за КОП, в аккумулятор. • Содержимое счетчика команд (0001 Н) передается в адресный регистр, на адресную шину и в память. Работа ЦС (микро ЭВМ) • Центральный процессор выдает импульс HIGH (лог 1) считывания на вход R/W памяти. • Импульс LOW (лог 0)поступает на вход CS памяти, что активизирует память. • В третьей строке (снизу) на рис. 4.12 счетчик команд инкрементируется до 0002Н, что подготавливает его к извлечению последующей команды. • Ячейка памяти 0001Н становится доступной, и ее содержимое (ОАН) поступает на шину данных, затем передается в аккумулятор. • В ходе этапа извлечения КОП всегда помещается в регистр команд.