Принцип программного управления

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

Пусть, например, необходимо вычислить выражение: .

Возможная программа его вычисления содержит следующие команды:

1-я команда: умножить операнд a на b;

2-я команда: сохранить результат умножения (a*b)в памяти;

3-я команда: сложитьоперанды a и b ;

4-я команда: умножить результат сложения (a+b) на c;

5-я команда: считать из памяти (a*b);

6-я команда: разделить результат (a*b)на результат (a+b)* c.

Если операнды и действия над ними представлены в двоичной системе счисления, то для реализации программы можно ввести следующую систему команд:

КОП 1-й операнд 2-й операнд

 

где КОП - код операции – поле, в котором заданы операции, выполняемые процессором, закодированные в двоичной системе счисления.

Подобная система команд применялась в самых первых ЭВМ, где для ввода программ и данных использовались перфоленточные устройства, в которых отсутствовала возможность возврата к ранее выполненным участкам программ. Это обстоятельство приводило к очень длинным (в буквальном смысле) программам. Пусть, например, необходимо вычислить выражение:

.

Программа вычислений будет следующей:

1-я команда: умножить a0 на b0;

2-я команда: умножить a1 на b1;

3-я команда: сложить результат 1-й команды с результатом 2-й команды;

4-я команда: умножить a2 наb2;

5-я команда: сложить результат 3-й команды с результатом 4-й команды:

6-я команда: умножить a3 наb3;

7-я команда: сложить результат 5-й команды с результатом 6-й команды и т.д.

При использовании предложенной структуры команд программа будет состоять приблизительно из n- команд умножения и n - команд сложения, т.е. всего из 2n команд. Большая длина программы обусловлена невозможностью оперативного возврата к тем ее частям, которые могли бы выполняться многократно.