Структура и система команд ЭВМ

Решение задач на ЭВМ реализуется программным способом, то есть путем выполнения последовательно во времени отдельных операций,предусмотренных алгоритмом решения задачи, над данными.

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

 

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

 

Структура команды в общем виде приведена на рисунке 3.

 

 

КОП Адресная часть

 

Рисунок 3 – Структура команды ЭВМ

 

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

По количеству адресов, записанных в команде, команды делятся на безадресные, одно-, двух- и трехадресные:

- типовая структура трехадресной команды:

 

КОП а1 а2 а3

 

а1 и а2 — адреса ячеек (регистров), где расположены соответственно первое и второе числа, участвующие в операции, а3 — адрес ячейки (регистра), куда следует поместить число, полученное в результате выполнения операции;

- типовая структура двухадресной команды:

 

КОП а1 а2

 

а1 — это обычно адрес ячейки (регистра), где хранится первое из чисел, уча­ствующих в операции, и куда после завершения операции должен быть записан результат операции, а2 — обычно адрес ячейки (регистра), где хранится второе участвующее в операции число;

- типовая структура одноадресной команды :

 

КОП а1

 

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

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

Наибольшее применение в ПК нашли двухадресные команды.

 

Множество команд, реализованных в конкретной ЭВМ, образует ее систему команд.

Современные ПЭВМ автоматически выполняют несколько сотен различных команд. Например, стандартный набор современных компьютеров содержит более 240 машинных команд.

Все машинные команды можно разделить на группы по видам выполняемых опе­раций:

- операции пересылки данных внутри компьютера;

- арифметические операции над данными;

- логические операции над данными;

- операции над строками (текстовой информацией);

- операции обращения к внешним устройствам компьютера;

- операции передачи управления;

- обслуживающие и вспомогательные операции.

Пояснения требуют операции передачи управления (или, иначе, — ветвления про­граммы), которые служат для изменения естественного порядка выполнения ко­манд.

Существуют операции безусловной передачи управления и операции услов­ной передачи управления.

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

Операции условной передачи управления вызывают тоже передачу управления по адресу, указанному в адресной части команды, но только в том случае, если выпол­няется некоторое заранее оговоренное для этой команды условие. Это условие в яв­ном или неявном виде указано в коде операции команды. Команд условной пе­редачи управления насчитывается обычно до нескольких десятков — по числу используемых условий.

Команд безусловных передач управления обычно только три:

- команда передачи управления, которая просто передает управление по задан­ному адресу и больше никаких действий не выполняет;

- команда передачи управления (ее часто называют командой вызова процедуры или подпрограммы), которая кроме передачи управления процедуре еще и за­поминает в специальной стековой памяти адрес следующей команды (адрес возврата из процедуры);

- безадресная команда передачи управления (команда возврата из процедуры), возвращающая управление по запомненному адресу возврата.

Вторая и третья из названных команд безусловных передач управления работают «на пару» — одна передает управление процедуре, другая возвращает из нее. Важ­ную роль в выполнении этих команд передачи управления (да и при многих дру­гих ситуациях, отрабатываемых компьютером) играет специальным образом орга­низованная область оперативной памяти — стековая память. Обращение к ячейкам этой памяти выполняется по принципу «последний записанный операнд первым считывается» или, иначе, «первым вошел — последним вышел» (FILO — first input, last output). Стековая память позволяет удобно реализовать процессы иерархи­ческого обращения ко многим процедурам (количество уровней иерархии практи­чески не ограничено), последовательно записывая и выдавая по принципу FILO адреса возврата каждой из них.