Главная страница

Программа для ЭВМ это упорядоченная последовательность команд, подлежащая обработке


Скачать 1.98 Mb.
НазваниеПрограмма для ЭВМ это упорядоченная последовательность команд, подлежащая обработке
АнкорMPS_2015.docx
Дата15.05.2017
Размер1.98 Mb.
Формат файлаdocx
Имя файлаMPS_2015.docx
ТипПрограмма
#7595
страница23 из 36
1   ...   19   20   21   22   23   24   25   26   ...   36

36.Классификация команд микропроцессоров.


Несмотря на различие в системах команд разных МП, некоторые основные типы команд могут быть найдены в любом из них. К основным типам команд МП относятся следующие:

команды пересылки данных;

команды арифметической и логической обработки;

команды ввода/вывода;

команды управления микропроцессором;

команды передачи управления.

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

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

К стандартному набору операций над целыми числами, представленными в форме с фиксированной запятой, относятся:

двухместные арифметические операции (операции с двумя операндами): сложение, вычитание, умножение и деление;

одноместные арифметические операции (операции с одним операндом): вычисление абсолютного значения (модуля) операнда, изменение знака операнда;

сложение с учетом переноса, вычитание с учетом заема, увеличение значения операнда на единицу (инкремент), уменьшение значения операнда на единицу (декремент);

операции сравнения, обеспечивающие сравнение двух целых чисел и выработку признаков, характеризующих соотношение между сопоставляемыми величинами: =, <>, >, <, <=, >=.

Для работы с числами, представленными в форме с плавающей запятой, обычно предусматриваются следующие операции:

основные арифметические операции: сложение, вычитание, умножение и деление;

операции сравнения, обеспечивающие сравнение двух вещественных чисел с выработкой признаков: =, <>, >, <, <=, >=;

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

Стандартная система команд МП содержит команды для выполнения различных логических операций над отдельными битами слов или других адресуемых единиц. Такие команды предназначены для обработки символьных и логических данных.

Минимальный набор поддерживаемых логических операций – НЕ, И, ИЛИ и сложение по модулю 2.

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

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

При арифметическомсдвигеданные трактуются как целые числа со знаком, причем бит знака не изменяет положения. При сдвиге вправо освободившиеся позиции заполняются значением знакового разряда, а при сдвиге влево – нулями.

Арифметические сдвиги позволяют ускорить выполнение некоторых арифметических операций. Так, если числа представлены двоичным дополнительным кодом, то сдвиги влево и вправо эквивалентны соответственно умножению и делению на 2.

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

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

Помимо вычисления результата выполнение арифметических и логических операций сопровождается формированием в АЛУ признаков (флагов), характеризующих этот результат. Наиболее часто фиксируются такие признаки, как: Z (Zero) – нулевой результат; N (Negative) – отрицательный результат; V (oVerflow) – переполнение разрядной сетки; С (Carry) — наличие переноса. Командыввода/вывода. Команды этой группы могут быть подразделены на команды управления периферийным устройством, проверки его состояния, ввода и вывода.

Команды управления периферийным устройством служат для запуска ПУ и указания ему требуемого действия. Например, накопителю на магнитной ленте может быть предписано на необходимость перемотки ленты или ее продвижения вперед на одну запись. Трактовка подобных инструкций зависит от типа ПУ.

Команды проверки состояния ввода/вывода применяются для тестирования различных признаков, характеризующих состояние ПУ. Благодаря этим командам процессор может выяснить, включено ли питание ПУ, завершена ли предыдущая операция ввода/вывода, возникли ли в процессе ввода/вывода какие-либо ошибки и т.п.

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

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

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

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

В системе команд можно выделить три типа команд, способных изменить последовательность вычислений:

безусловные переходы;

условные переходы (ветвления);

вызовы процедур и возвраты из процедур.

Среди команд рассматриваемой группы наиболее часто используются условные переходы (81%).

Команда безусловногопереходаобеспечивает переход по заданному адресу без проверки каких-либо условий. Присутствие в программе большого числа команд безусловного перехода считается признаком плохого стиля программирования.

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

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

1   ...   19   20   21   22   23   24   25   26   ...   36


написать администратору сайта