Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МАВЦ.464319.001ТУ 20140414 Семенов.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
2.98 Mб
Скачать

5.14 Последовательность работы пк при выполнении программы

Программа решения задачи состоит из последовательности команд, которые вы­полняются друг за другом. Исключения составляют команды передачи управле­ния, изменяющие естественный ход выполнения программы путем передачи уп­равления по имеющемуся в них явному или неявному адресу.

Каждая команда программы начинает исполняться сразу, как только ее адрес (сме­щение) поступит в регистр микропроцессора Instructor Pointer (IP). Для выпол­нения любой, даже самой короткой команды в МП типа CISC требуется несколь­ко тактов.

1. Первый такт у всех команд одинаковый — по адресу, поступившему в IP, вы­полняется считывание кода команды и передача этого кода в блок регистра ко­манд (БРК) микропроцессора. Более подробно последовательность работы машины в этом такте можно описать следующим образом (здесь и далее указы­ваются только основные управляющие сигналы):

  • в регистр IP поступает сигнал считывания информации, и считанный код адреса смещения команды (Асмещ) поступит на вход узла формирования ад­реса в У У;

  • на второй вход этого устройства из МПП поступит считанный из регистра сегмента кода (CS) начальный адрес кодового сегмента;

  • в УФА эти коды сложатся и сформируется абсолютный адрес команды по формуле:

Аабс = А’сегм * 16 + Асмещ;

  • абсолютный адрес по кодовым шинам адреса (КША) поступит в регистр ад­реса оперативного запоминающего устройства (ОЗУ), и будет подготовле­на соответствующая этому адресу ячейка памяти для считывания информа­ции;

  • в ОЗУ поступит управляющий импульс считывания, и код команды из яче­ек памяти будет передан на кодовые шины данных (КШД). Количество счи­танных ячеек зависит от длины кода считываемой команды;

  • по КШД код команды пройдет на регистр данных ОЗУ и будет записан об­ратно в ячейки памяти, из которых он считывался (будет регенерирован);

  • одновременно по тем же КШД код команды пройдет в УУ и будет записан в БРК.

Второй и последующие такты команды зависят от кода этой команды и в пер­вую очередь от кода операции (КОП). Рассмотрим дальнейшую работу ПК при­менительно к выполнению ассемблерной команды ADD AX , Pole.

2. В соответствии с данной командой во втором такте должен быть расшифрован код операции команды для определения набора управляющих сигналов, необ­ходимых для выполнения команды, из регистра АХ считано первое число, уча­ствующее в операции, и это число помещено в регистр Perl АЛУ. Для этого:

  • в начале второго такта выполнения команды код операции, соответствую­щий ассемблерному обозначению ADD, поступит из БРК на вход дешифрато­ра операций (ДШО) устройства управления, в котором по данному коду будет выбрана одна из шин;

  • эта шина является адресной шиной ПЗУ микропрограмм, инициирующей группу ячеек памяти, содержащих сигналы, необходимые для управления выполнением операции сложения. Под действием этих управляющих сиг­налов в этом же втором такте из БРК будет считан адрес первого числа -АХ, код которого пройдет транзитом через УФА и по КША поступит в МПП;

  • в МПП будет подготовлен для работы регистр АХ, и из этого регистра будет считано первое число, которое по КШД пройдет в Perl АЛУ.

3. В третьем такте выполнения команды ADD AX, Pole из инициированных ячеек ПЗУ микропрограмм будут считаны сигналы, которые выполнят следующие действия:

  • считают второй адрес из команды, находящейся в БРК. Ассемблерное имя этого адреса Pole, но в коде машинной команды будет находиться уже дво­ичный код адреса Лсмеш, взятый из таблицы адресов именованных полей па­мяти (эту таблицу можно видеть в конце листинга программы);

  • передадут этот адрес на вход УФА. На второй вход УФА поступит началь­ный адрес сегмента данных Лсеш из регистра DS. В УФА будет сформирован абсолютный адрес второго числа:

Аабс = А’сегм * 16 + Асегм

(составляющие Абазы и Аинд в команде не использованы);

  • адрес Аабс по КША пройдет в ОЗУ, где по этому адресу будет считано второе число;

  • по КШД считанное число поступит в Рег2 АЛУ и обратно в ОЗУ для реге­нерации.

4. В четвертом такте все управляющие сигналы поступят в АЛУ, где:

  • число из Perl будет передано на один вход сумматора;

  • число из Рег2 будет передано на второй вход сумматора;

  • в сумматоре числа сложатся и сумма поступит в Perl АЛУ.

5. В пятом, последнем такте выполнения команды ADD AX, Pol e сумма чисел из АЛУ должна быть передана и записана в регистр АХ МПП, а в регистре IP — сформирован адрес смещения следующей команды программы. Для этого:

  • из кода команды в БРК будет считан первый адрес — АХ, который транзи­том через УФА пройдет по КША в МПП, где инициирует для приема ин­формации регистр АХ;

  • из Perl АЛУ будет считана сумма чисел, которая по КШД пройдет на вход МПП и будет записана в регистр АХ;

  • в регистр IP будет добавлено число 6, равное длине выполненной команды (команда ADD AX, Pole имеет длину 6 байт);

Поскольку в регистре IP сменился код адреса смещения, ПК приступит к выпол­нению следующей команды программы.

В случае выполнения команд передачи управления в конце такой команды в IP до­бавится не длина выполненной команды, а разность между адресом смещения теку­щей команды и адресом смещения команды, к которой передано управление (при передаче управления в другой сегмент будет изменено и содержимое регистра CS).