Выполнение программы персональным компьютером
Все программы, исполняемые персональным компьютером, хранятся в его внешней памяти. При запуске программы пользователь организует запрос на ее исполнение в операционную систему, установленную на компьютере (например, Microsoft Windows). Запрос пользователя – ввод имени исполняемой программы в командную строку Windows или эквивалентная ему операция (например, двойной щелчок кнопкой мыши на ярлыке исполняемого файла). Обработчик команд Windows – файл cmd.exe обеспечивает перезапись исполняемой программы из внешней памяти в оперативную и устанавливает в счетчике команд IP процессорной памяти адрес ячейки оперативной памяти, в которой находится первая команда этой программы.
После этого автоматически начинается выполнение команд программы друг за другом. Каждая команда требует для своего исполнения нескольких тактов работы компьютера. За первые два такта выполнения любой команды проводится считывание кода команды из оперативной памяти по адресу, установленному в счетчике команд, и запись этого кода в регистр команд устройства управления. Содержание последующих тактов определяется результатами анализа команды, т. е. зависит уже от ее типа.
Пример 3.3. Выполнение машинной команды
адрес команды | код операции | адрес 1-го операнда | адрес 2-го операнда | адрес результата |
сложения двух чисел будет выполнено за 7 тактов:
1. В счетчик команд IP передается адрес выполняемой команды (0170);
2. Из счетчика команд адрес передается в оперативную память, из которой по данному адресу извлекается вся команда (0170 0001 1300 1301 1320) и передается в регистр команд устройства управления;
3. Из регистра команд извлекается адрес первого операнда (1300), передается в оперативную память, из которой по этому адресу извлекается сам первый операнд и передается в регистр 1 арифметико-логического устройства;
4. Аналогичным образом второй операнд по своему адресу (1301) извлекается из оперативной памяти и передается в регистр 2 арифметико-логического устройства; одновременно с этим код операции (0001) передается из регистра команд в дешифратор операций, который этот код расшифровывает и посредством ПЗУ микропрограмм формирует двоичные управляющие сигналы для арифметико-логического устройства;
5. Сформированные управляющие сигналы передаются в сумматор арифметико-логического устройства, в котором и выполняется сложение; результат выполнения возвращается в регистр 1 арифметико-логического устройства;
6. Адрес результата (1320) передается в оперативную память и по этому адресу проводится запись самого результата;
7. К счетчику команд IP автоматически прибавляется число байтов (10), занимаемое выполненной командой, для формирования адреса следующей команды программы, поскольку все команды размещаются в оперативной памяти последовательно друг за другом.