Лабораторная работа №1
«Архитектура микропроцессора КР 580 ВМ 80 и используемая им система команд»
Цель работы: изучение микропроцессора КР 580 ВМ 80 и используемой им системы команд. Рассмотрение прохождения команд по машинным циклам. Получение практических навыков работы с микропроцессором, составления и отладке программ обработки однобайтных данных.
Теоретическая часть.
Назначение, техническая реализация и архитектура микропроцессора КР 580 ВМ 80.
Микропроцессором называется программно-управляемое устройство, осуществляющее процесс обработки цифровой информации и управление им построенное на основе одной или нескольких БИС. Обработка включает перемещение данных с одного места на другое и выполнение операций над ними, управление определяет как нужно обрабатывать данные. Микропроцессор серии КР 580 ВМ 80 является аналогом МП серии Intel 8080. Обычно микропроцессор помещается в корпус интегральной схемы с 40 двусторонними выводами (рис 1.1). Функциональная схема КР 580 ВМ 80 представлена на рис 1.2. Для связи с другими МП имеет 3 шины: трёхстабильную двунаправленную 8-разрядную шину данных D0-D7, трёхстабильную 16-разрядную шину адресом A0-A15, шину управления, содержащую линии для передачи управляющих сигналов, признаков состояния процессора и периферийных устройств. 8-разрядная внутренняя шина данных является магистралью, по которой обмениваются данными все подключённые к ней блоки (узлы) МП. Одновременно производится обмен только между двумя узлами МП.
Регистры микропроцессора.
В состав микропроцессора КР 580 ВМ 80 входят восемь 8-разрядных и два 16-разрядных внутренних программно-доступных регистров (рис 1.2), (рис 1.3), содержимое которых можно модифицировать или использовать в качестве операндов в различных командах. 16-разряжные регистры служат для хранения адреса команды и указателя стека. В 8-разрядных регистрах могут одновременно хранится и обрабатываться данные, адреса и специальные признаки – флажки. Операции с регистрами занимают немного места в ОЗУ и выполняются намного быстрее операций с памятью. Поэтому, когда это возможно, использование регистров для временного хранения данных во всех случаях предпочтительней хранения данных в ОЗУ.
|
Кроме того, имеются непосредственно недоступные программные регистры: 8-разрядные регистры временного хранения W,Z; 8-разрядный регистр IR (Instruction Register); 16-разрядный регистр адреса RA (Register Address). Команды поступают по шине данных в регистр IR, который подключён к дешифратору команд DCC, обеспечивающему через схему управления CNTR (Control) выдачу нужной последовательности импульсов на синхровходы функциональных узлов микропроцессора и во внешнюю шину управления. Наиболее важным регистром МП является аккумулятор, обозначаемый A (Accumulator). Этот 8-разрядный регистр используется почти во всех арифметических и логических операциях, в операциях загрузки, записи в память и во многих других. Аккумулятор, в отличии от других регистров, может быть сдвинут, инвертирован, косвенно загружен или записан в память по адресу, содержащемуся в других регистрах. Он также может быть загружен прямо или записан в память по адресу, указанному в команде явно. Для того, чтобы аккумулятор мог одновременно являться регистром операнда и регистра результата операции, он строится на основе двухступенчатый триггеров.
|
Кроме аккумулятора имеется шесть 8-разрядных регистров, называемых регистрами общего назначения B,С, D, E, H, L. Каждый из регистров может обрабатываться независимо от других, но кроме того, регистры B и C, D и E, H и L могут выполнять функции 6-разрядных регистров, к которым можно обращаться по наименованию старшего регистра, соответственно B, D, H. Все регистровые пары имеют свои особенности, которые определяют при программировании выбор регистров для тех или иных целей. Для связи регистров общего назначения с шиной данных служит двунаправленный шинный мультиплексор MX.
Регистровая пара HL существенно выделяется среди других регистровых пар. Она может быть прямо загружена или записана в память, а также через неё осуществляться косвенная адресация к любой ячейке памяти, через ссылку на косвенный регистр M. Содержимое регистровой пары HL может быть обменено с содержимым регистровой пары DE и с вершиной стека, её содержимое можно переслать в указатель стека и в счётчик команд, можно сложить с содержимым пар регистров BC и DE, а также удвоить, то есть сдвинуть влево на один разряд сразу 16 бит.
Регистровая пара BC выделяется тем, что может быть обменена одной командой с парой регистров HL, поэтому её удобно использовать для временного хранения содержимого пары HL, хранения второго адреса, передачи параметров подпрограмм и т.п. Других особенностей регистровая пара BC не имеет, и её используют в основном для счётчиков или в качестве рабочих регистров для временного хранения данных.
|
16-разрядный регистр PC (Program Counter) является счётчиком команд. Ячейка ОЗУ по адресу, содержащемуся в счётчике команд, считывается и обрабатывается как команда, имеющая длину 1, 2 и 3 байта, счётчик команд увеличивается на длину команды и в момент выполнения текущей команды всегда содержит адрес следующей. Назначение регистра PC, а следовательно и порядок выполнения команд, изменяется при выполнении команд перехода, выхода и возврата из программ, а также в результате выполнения некоторых других команд.
16-разрядный регистр SP (Stack Pointer) – это регистр стека. Он служит для организации в любом месте ОЗУ участка памяти, называемого стеком. Стек – такая организация хранения данных, при которой данные, помещаемые для хранения в стек последними, при обращении к стеку извлекаются первыми. Поместить и извлечь данные из стека можно только через его вершину. При записи данных в стек адрес его вершины перемещается в сторону младших адресов ОЗУ. Стек явно и неявно широко используется при программировании. В стек, например, помещается адрес возврата при вызове программ, в стеке удобно временно хранить данные из регистров, так как запись содержимого пары регистров в стек и извлечение из него осуществляется однобайтовыми командами. При помещении данных в стек происходит автоуменьшение значения регистра SP, то есть уменьшение адреса регистра стека на 2 до выполнения команды. При извлечении данных из стека происходит автоприращение, то есть увеличение адреса вершины стека на 2, но уже после выполнения команды. Поместить и извлечь данные из стека можно только через пары регистров B, D, H и PSW. При помещении данных в стек передаётся в начале содержимое старшего регистра или старший байт адреса, а затем младший .
Регистр F (Flags) – флажковый регистр, осуществляет функции хранения признаком результатов операций, которые генерируют АЛУ (арифметически - логическое устройство). Регистр состоит из пяти флажков CY, P, AC, Z, S,упакованных в байт, три разряда которого не используются. Флажки имеют следующее функциональное назначение:
CY (Carry) – признак переноса из старшего разряда АЛУ, равен 1 при возникновении переноса при обработке 8-разрядных данных, в противном случае равен 0;
P (Parity) – признак чётного числа единиц в результате, равен 1 при чётном числе единиц в результате операций, в противном случае равен 0;
AC (Auxiliary carry) – признак дополнительного переноса, равен 1 при возникновении переноса при обработке 4-разрядных данных, в противном случае равен 0;
Z (Zero) – признак нулевого результата, равен 1, если результатом операции является нуль, в противном случае равен 0;
S (Sign) – признак знак результата, равен 1, если результат операции отрицательный, если результат операции положительный, равен 0.
Состояние флагов проверяется при выполнении команд условного перехода, при условном вызове и возврате из программ. Флаги устанавливаются по значению аккумулятора, а также по значению любого 8-разрядного регистра после выполнения команд INR и DCR. При выполнении команд сравнения флаги устанавливаются по значению результата. Многие команды не влияют на состояние регистра флагов, поэтому текущее значение аккумулятора может совсем не соответствовать текущему состоянию флагов.
Аккумулятор и флаги образуют 16-разрядный регистр, называемый словом состояния процессора и обозначаемый PSW (Program status word).
При выполнении операций в МП возникает потребность в кратковременном хранении некоторых операндов и результатов выполнения операций. Для этой цели служат регистры временного хранения данных W и Z. Использование этих регистров позволяет МП за один цикл выполнения команды реализовать, например такую операцию, как обмен двух регистров.
Особенностью блоков регистров является наличие в его составе схемы INC/DEC (инкременатора/декременатора), которая