Принцип

 

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

 

a) работой ЭВМ управляет программа, состоящая из отдельных команд;

b) программа размещается вместе с данными в основной памяти ЭВМ;

c) каждая команда хранится в отдельной ячейке памяти (или группе смежных ячеек) и имеет свой адрес;

d) все команды имеют одинаковую структуру. Они состоят из двух частей: кода операции и адресной части. Код операции определяет, какую команду нужно выполнить. Адресная часть определяет, где хранятся операнды - т.е. обрабатываемые данные, и куда необходимо поместить результат операции.

 

В зависимости от количества используемых в команде операндов различаются одно-, двух-, трех-, четырехадресные, и безадресные команды.

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

В двухадресных командах оба операнда перед выполнением операции находятся в памяти, поэтому их адреса указываются в команде. После выполнения команды в один из этих адресов засылается результат, а находившийся там операнд теряется.

В трехадресных командах два адреса указывают, где находятся исходные операнды, а третий - куда необходимо поместить результат.

В четырехадресных командах три адреса используются для указания исходных операндов и результата, а четвертый - для указания адреса следующей команды.

В безадресных командах обычно обрабатывается один операнд, который до и после операции находится в арифметическом устройстве (в память не пересылается). Кроме того, безадресные команды используются для выполнения служебных операций (очистить экран, заблокировать клавиатуру, снять блокировку, и др.).

 

e) все команды программы выполняются последовательно, команда за командой, в том порядке, как они записаны в памяти ЭВМ (естественный порядок следования команд). Этот порядок характерен для линейных программ, т.е. программ, не содержащих разветвлений.

 

Для организации разветвлений, циклического выполнения участков программы, есть команды, нарушающие естественный порядок. К ним относятся: безусловная передача управления (или "безусловный переход"), условная передача управления (т.е. переход, если выполняется заданное условие), обращение к подпрограмме (т.е. "переход с возвратом"), циклические операции. Кроме того, естественный порядок следования команд не соблюдается в машинах, использующих четырехадресные команды - в этом случае некоторые из команд передачи управления упраздняются.

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