Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
358
Добавлен:
11.02.2015
Размер:
3.86 Mб
Скачать

4.2. Система команд

Система команд является одной из основных архитектурных характеристик МП. Система команд определяет совокупность операций, реализуемых МП. В понятие система команд входят:

– список команд, их функциональное назначение;

– форматы команд и обрабатываемых данных;

– способы адресации данных.

Команды, реализуемые любым МП, можно подразделить на следующие функциональные группы:

– пересылки данных и ввода-вывода;

– арифметических и поразрядных логических операций;

– передачи управления.

Команды пересылок данных обеспечивают как внутренний обмен информацией между регистрами внутри МП, так и внешние обмены данными при их передаче в МП из памяти или устройства ввода и из МП в память или устройство вывода. Обозначения команд пересылок, используемые в языках Ассемблера, имеют вид: MOVE (переслать), LOAD(загрузить), STORE (запомнить), EXCHANGE (обменять). В командах этой группы обычно указывается направление передачи, источник и/или приемник данных. Так как большинство современных МП различают адресные пространства ввода/вывода и памяти, то для обращения к портам ввода/вывода, выделенным в отдельное адресное пространство, используют специальные команды пересылок с обозначениями INPUTдля ввода и OUTPUT для вывода. В группу команд пересылок часто включают команды загрузки в стек PUSH и извлечения POP из стека.

Команды арифметических и поразрядных логических операций. В большинстве случаев в число команд этой группы входят команды простейших арифметических операций: сложить (ADD), вычесть (SUBTRACTSUB) и команды поразрядных логических операций И (AND), ИЛИ (OR), Исключающее ИЛИ (EXCLUSIVE ORXOR). К командам арифметических операций часто относят команды сдвигов (арифметических и логических), а к командам логических операций – команды сравнения COMPARE (неразрушающего вычитания). Логические сдвиги отличаются от арифметических тем, что в них участвуют все разряды чисел, включая знаковые.

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

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

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

Команды передачи управления используются для изменения последовательности выполнения команд при наличии программных ветвлений JUMP, обращении к подпрограммам CALL и выхода из них RETURN. В зависимости от результата выполнения текущей команды с помощью команд условной передачи управления, например команды условного перехода при нулевом значении сигнала переноса JUMP ON CARRY ZERO, МП может выбрать одну из возможных ветвей продолжения программы. Обычно в системе командимеется несколько команд условных переходов по прямому и инверсному значениям различных признаков результата.

Системы команд современных МП, наряду с традиционными командами пересылок, арифметических и логических операций, командами передачи управления, содержат в своем составе группы команд, значительно расширяющие функциональные возможности МП по обработке информации, управлению его работой, а также обеспечивающие реализацию многозадачного защищенного режима работы. В частности, команды МП Pentium можно разделить на следующие функциональные группы:

– команды операций над целыми числами. В их число включают команды пересылки данных и ввода-вывода, команды арифметических и поразрядных логических операций, в том числе команды сдвига, команды операций со строками символов, команды битовых операций;

– команды операций над числами с плавающей точкой;

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

– команды расширений MMX (MultiMediaExtensions) и SSE (Streaming SIMD Extensions), поддерживающие технологию SIMD (SingleInstructionMultipleData) над целыми числами (ММХ) и числами с плавающей точкой (SSE). Команды данной группы выполняют однотипные действия сразу над всеми числами в упакованных форматах;

– команды поддержки языков высокого уровня;

– системные команды поддержки функций ОС по управлению памятью, средствами защиты и переключению задач;

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

В системы команд конкретных МП могут входить команды, не вписывающиеся в предложенную классификацию. Подобные команды не отражают общих принципов построения программ и рассматриваются как дополнительные.