Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

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

Читайте также:
  1. D. Программы использования
  2. I «Волевые* метапрограммы_________________________ 161
  3. I. Категория: научные работы
  4. I. Общая характеристика работы
  5. I. Схема работы для организации семинарского занятия
  6. II. ВИДЫ САМОСТОЯТЕЛЬНОЙ РАБОТЫ ОБУЧАЮЩИХСЯ
  7. II. Выполнение работы

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

Каждая команда программы начинает исполняться сразу, как только ее адрес (сме­щение) поступит в регистр микропроцессора 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).

 

 

 


Дата добавления: 2015-12-07; просмотров: 100 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.007 сек.)