Структура ЭВМ неймановского типа - часть четвертая
При записи кодов команд, т.е. команд, приведенных к виду чисел, которые обеспечивают вычисление величины а, ниже применяется специальная форма записи (Таблица 2).
Форма таблицы соответствует бланкам, которые использовали программисты в начале-середине 50-ых годов. Правила составления такой таблицы очевидны при условии, что А1 является адресом первого операнда, А2 – адресом второго операнда и А3 - адресом результата, а вычисление выражения "разложено” (структурировано) на двухместные и одноместные операции.
Пример тех же самых вычислений, но с использованием одноадресных команд иллюстрируется программой, которая приведена в Таблице 3. Здесь используются дополнительно введеные коды операций: 07, предписывающий передачу содержимого ячейки памяти с адресом А в АЛУ, 08 – обратные действия, а коды 03-06 определяют выполнение соответствующих операций над переменными, одна из которых находится в АЛУ, другая - в ячейке с адресом А, и сохранением результата в АЛУ.
Как следует из таблицы, программа относительно предыдущей “удли-нилась” всего на две команды, но при этом не имеет “лишних” адресных полей (за исключением последней команды).
Записанная таким образом последовательность команд или программа представляет собой последовательность чисел, которые можно разместить в памяти ЭВМ.
Пусть программа размещена в свободной зоне памяти начиная, например, с ячейки 501 (такое размещение обычно осуществляется с помощю сложения номера команды с константой или так называемым смещением, которое в рассматриваемом случае равно 500). Тогда для автоматического выполнения программы достаточно занести в СЧАК (РI) число 501 (так называемый пусковой адрес) и включить режим автоматического выполнения программы.
При этом всегда будут производится одни и тот же набор действий – цикл выполнения команды:
Содержимое ячейки памяти, адрес которой определяется значением СЧАК (PI), т.е. первой команды программы, передается в регистр команд устройства управления.
Если код операции команды не предписывает прекращение вычислений, то выполняется пункт 3, иначе пункт 7.
С помощью дешифрованного кода операции АЛУ настраивается на выполнение заданной операции.
Числа, которые хранятся в ячейках, указанных адресами команды, передаются в АЛУ в качестве операндов.
Выполняется операция и, если необходимо, результат заносится в ячейку памяти с адресом, указанным в команде.
Содержимое СЧАК (PI) модифицируется (в простейшем случае к содержимому СЧАК (PI) прибавляется единица, т.е. выполняется присваивание СЧАК := СЧАК+1) и происходит возврат в начало цикла (к пункту 1).
Вычисления заканчиваются т.е. прекращается автоматическое выполнение программы.
Таким образом, принцип программного управления в упрощенном виде основывается на том, что программа должна быть представлена в числовом виде, размещена в памяти ЭВМ, а сама ЭВМ должна выполнять некоторую процедуру автоматической выборки и исполнения очередной команды вплоть до окончания программы.
При этом следует еще раз подчеркнуть, что для представления программы в числовом виде необходимо предварительно распределить память, а также то, что подавляющее большинство современных ЭВМ построено на основе принципа Неймана и любая исполняемая ими программа в конечном счете должна быть приведена к виду, аналогичному рассмотренному выше.
Мы рекомендуем вам ознакомиться со следующими материалами на тему: