Типы команд
Несмотря на различие в системах команд разных ВМ, некоторые основные типы операций могут быть найдены в любой из них. Для описания этих типов примем следующую классификацию:
- команды пересылки данных;
- команды арифметической и логической обработки;
- операции с десятичными числами;
- команды преобразования;
- команды ввода/вывода;
- команды управления потоком команд.
Команды пересылки данных
Рассматриваемая группа команд обеспечивает передачу информации между процессором и ОП, внутри процессора и между ячейками памяти. Пересылочные операции внутри процессора имеют тип «регистр-регистр». Передачи между процессором и памятью относятся к типу «регистр-память», а пересылки в памяти – к типу «память-память».
Команды арифметической и логической обработки
В данную группу входят команды, обеспечивающие арифметическую и логическую обработку информации в различных формах ее представления. Для каждой формы представления чисел в АСК обычно предусматривается некий стандартный набор операций.
Помимо вычисления результата выполнение арифметических и логических операций сопровождается формированием в АЛУ признаков (флагов), характеризующих этот результат. Наиболее часто фиксируются такие признаки, как: нулевой результат; отрицательный результат; переполнение разрядной сетки; наличие переноса.
Операции с целыми числами
К стандартному набору операций над целыми числами, представленными в форме с фиксированной запятой, следует отнести:
- арифметические операции с двумя операндами: сложение, вычитание, умножение и деление;
- арифметические операции с одним операндом: вычисление абсолютного значения (модуля) операнда, изменение знака операнда;
- операции сравнения, обеспечивающие сравнение двух целых чисел и выработку признаков, характеризующих соотношение между сопоставляемыми величинами ( ).
Операции с числами в форме с плавающей запятой
Для работы с числами, представленными в форме с плавающей запятой, в АСК большинства машин предусмотрены:
- основные арифметические операции: сложение, вычитание, умножение и деление;
- операции сравнения, обеспечивающие сравнение двух вещественных чисел с выработкой признаков: ;
- операции преобразования: формы представления (между фиксированной и плавающей запятой), формата представления (с одинарной и двойной точностью).
Логические операции
Стандартная система команд ВМ содержит команды для выполнения различных логических операций над отдельными битами слов или других адресуемых единиц. Такие команды предназначены для обработки символьных и логических данных. Минимальный набор поддерживаемых логических операций – это «НЕ», «И», «ИЛИ» и сложение по модулю 2.
Операции сдвигов
В дополнение к побитовым логическим операциям, практически во всех АСК предусмотрены команды для реализации операций логического, арифметического и циклического сдвигов.
Операции с десятичными числами
Десятичные числа представляются в ВМ в двоично-кодированной форме. В вычислительных машинах первых поколений для обработки таких чисел предусматривались специальные команды, обеспечивавшие выполнение основных арифметических операций (сложение, вычитание, умножение и деление). В АСК современных машин подобных команд обычно нет, а соответствующие вычисления имитируются с помощью команд целочисленной арифметики.
Команды преобразования
Команды преобразования осуществляют изменение формата представления данных. Примером может служить преобразование из десятичной системы счисления в двоичную или перевод 8-разрядного кода символа из кодировки АSCII в кодировку ЕВСDIС, и наоборот.
Команды ввода/вывода
Команды этой группы могут быть подразделены на команды управления периферийным устройством (ПУ), проверки его состояния, ввода и вывода.
Команды управления системой
Команды, входящие в эту группу, являются привилегированными и могут выполняться, только когда центральный процессор ВМ находится в привилегированном состоянии или выполняет программу, находящуюся в привилегированной области памяти (обычно привилегированный режим используется лишь операционной системой). Так, лишь эти команды способны считывать и изменять состояние ряда регистров устройства управления.
Команды управления потоком команд
Концепция фон-неймановской вычислительной машины предполагает, что команды программы, как правило, выполняются в порядке их расположения в памяти. Для получения адреса очередной команды достаточно увеличить содержимое счетчика команд на длину текущей команды. В то же время основные преимущества ВМ заключаются именно в возможности изменения хода вычислений в зависимости от возникающих в процессе счета результатов. С этой целью в АСК вычислительной машины включаются команды, позволяющие нарушить естественный порядок следования и передать управление в иную точку программы. В адресной части таких команд содержится адрес точки перехода (адрес той команды, которая должна быть выполнена следующей). Переход реализуется путем загрузки адреса точки перехода в счетчик команд (вместо увеличения содержимого этого счетчика на длину команды).
В системе команд ВМ можно выделить три типа команд, способных изменить последовательность вычислений:
- безусловные переходы;
- условные переходы (ветвления);
- вызовы процедур и возвраты из процедур.
Дата добавления: 2015-07-18; просмотров: 1058;