Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика и ВТ Брукшир.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.07 Mб
Скачать

2.3 Выполнение программы

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

Для того чтобы понять, как проходит процесс выполнения программы, рассмотрим более детально устройство управления центрального процессора. Это устройство содержит специальные регистры двух видов: счетчик команд (program counter) и регистр команд (instruction register) (см. рис. 2.2). В счетчике команд содержится адрес следующей команды, которую нужно выполнить. Поэтому он представляет собой средство, с помощью которого машина отслеживает, на какой стадии выполнения программы она находится. Регистр команд используется для хранения команды, которая в данный момент выполняется.

Устройство управления непрерывно повторяет алгоритм, который состоит из трех шагов и называется машинным циклом (machine cycle). Эти три шага таковы: выбрать, расшифровать и выполнить (рис. 2.5). Во время выбора устройство управления запрашивает в оперативной памяти команду, хранящуюся по адресу, указанному счетчиком команд. Поскольку длина каждой команды в нашей машине равна двум байтам, процесс выбора состоит в извлечении содержания двух соседних ячеек памяти. Устройство управления помещает полученную команду в регистр команд и прибавляет к значению счетчика команд два, так чтобы он содержал адрес следующей команды. Таким образом, счетчик команд готов для использования его во время следующего выбора.

Затем устройство управления выполняет команду, активируя схему, необходимую для выполнения требуемого действия. Например, если команда предписывает загрузить значение из памяти, то устройство управления осуществляет эту операцию, если команда предписывает выполнить какую-либо арифметическую операцию, устройство управления активирует схему в арифметико-логическом устройстве, которая имеет на входе соответствующие регистры.

После выполнения команды, находящейся в регистре команд, устройство управления снова начинает машинный цикл с шага выбора. Обратите внимание на то, что счетчику команд было дано приращение в конце предыдущего выбора, поэтому он содержит верный адрес команды.

Выполнение команды перехода является особым случаем. Рассмотрим, например, команду В258 (рис. 2.6), которая означает «перейти к команде с адресом 58, если содержимое регистра 2 равно содержимому регистра О». В этом случае шаг выполнения в машинном цикле начинается со сравнения регистров 2 и 0. Если они содержат разные коды, шаг выполнения завершается и начинается следующий машинный цикл. Однако если содержимое этих двух ячеек совпадает, машина помещает значение 58 в счетчик команд. В этом случае при следующем шаге выбора в счетчике команд будет находиться значение 58, поэтому команда, находящаяся по этому адресу, является следующей командой, которую нужно извлечь и выполнить.

Обратите внимание на то, что если бы команда имела вид В058, то тогда решение об изменении счетчика команд зависело бы от того, равно ли содержимое регистра 0 содержимому регистра 0. А так как это один и тот же регистр, он должен иметь одно содержание. Поэтому любая команда, имеющая вид BOXY, вызовет переход к ячейке памяти XY.