- •1. Основные понятия и определения
- •2. Классификация микропроцессоров
- •3. Структура типичной микроэвм
- •3.1. Система шин микроЭвм
- •3.2. Микропроцессор
- •3.3. Память
- •3.4. Порты
- •3.5. Работа микроЭвм
- •4. Архитектура микропроцессоров
- •4.1. Типовая структура микропроцессора
- •4.2. Система команд
- •4.3. Структура команд
- •4.4. Способы адресации операндов и команд
- •5. Организация микропроцессоров с фиксированными разрядностью и списком команд
- •5.1. Структура микропроцессора кр580вм80а
- •5.2. Синхронизация работы микропроцессорной системы на базе мп кр580вм80а
- •5.3. Программная модель микропроцессорной системы на базе мп кр580вм80а
- •5.4. Выполнение команд в мп кр580вм80а
- •5.5. Управление микропроцессором и микропроцессорной системой
- •5.6.Управление режимами работы мп кр580вм80а
- •6. Мп кр580вм80а в структуре микропроцессорной системы
- •Система команд микропроцессора кр580вм80а
4.2. Система команд
Система команд является одной из основных архитектурных характеристик МП. Система команд определяет совокупность операций, реализуемых МП. В понятие система команд входят:
– список команд, их функциональное назначение;
– форматы команд и обрабатываемых данных;
– способы адресации данных.
Команды, реализуемые любым МП, можно подразделить на следующие функциональные группы:
– пересылки данных и ввода-вывода;
– арифметических и поразрядных логических операций;
– передачи управления.
Команды пересылок данных обеспечивают как внутренний обмен информацией между регистрами внутри МП, так и внешние обмены данными при их передаче в МП из памяти или устройства ввода и из МП в память или устройство вывода. Обозначения команд пересылок, используемые в языках Ассемблера, имеют вид: MOVE (переслать), LOAD(загрузить), STORE (запомнить), EXCHANGE (обменять). В командах этой группы обычно указывается направление передачи, источник и/или приемник данных. Так как большинство современных МП различают адресные пространства ввода/вывода и памяти, то для обращения к портам ввода/вывода, выделенным в отдельное адресное пространство, используют специальные команды пересылок с обозначениями INPUTдля ввода и OUTPUT для вывода. В группу команд пересылок часто включают команды загрузки в стек PUSH и извлечения POP из стека.
Команды арифметических и поразрядных логических операций. В большинстве случаев в число команд этой группы входят команды простейших арифметических операций: сложить (ADD), вычесть (SUBTRACT–SUB) и команды поразрядных логических операций И (AND), ИЛИ (OR), Исключающее ИЛИ (EXCLUSIVE OR–XOR). К командам арифметических операций часто относят команды сдвигов (арифметических и логических), а к командам логических операций – команды сравнения COMPARE (неразрушающего вычитания). Логические сдвиги отличаются от арифметических тем, что в них участвуют все разряды чисел, включая знаковые.
Команды сложных арифметических операций типа умножения и деления содержатся в системах команд не у всех МП. В «ранних» моделях МП таких команд нет, поэтому названные операции необходимо выполнять программным путем, что требует больших затрат времени и памяти.
В некоторых МП система команд ориентирована только на обработку двоичных чисел с фиксированной запятой. Операции с другими формами представления двоичных чисел чаще всего выполняются программно. Большинство МП также обеспечивают обработку данных, представленных в двоично-десятичном коде. Для коррекции результатов арифметических операций над такими данными в группу команд арифметических операций включают специальные команды десятичной коррекции типа DECIMAL ADJUST.
В число команд этой группы могут входить команды обработки чисел в формате с плавающей точкой, а также команды мультимедийной обработки (SIMD-команды).
Команды передачи управления используются для изменения последовательности выполнения команд при наличии программных ветвлений JUMP, обращении к подпрограммам CALL и выхода из них RETURN. В зависимости от результата выполнения текущей команды с помощью команд условной передачи управления, например команды условного перехода при нулевом значении сигнала переноса JUMP ON CARRY ZERO, МП может выбрать одну из возможных ветвей продолжения программы. Обычно в системе командимеется несколько команд условных переходов по прямому и инверсному значениям различных признаков результата.
Системы команд современных МП, наряду с традиционными командами пересылок, арифметических и логических операций, командами передачи управления, содержат в своем составе группы команд, значительно расширяющие функциональные возможности МП по обработке информации, управлению его работой, а также обеспечивающие реализацию многозадачного защищенного режима работы. В частности, команды МП Pentium можно разделить на следующие функциональные группы:
– команды операций над целыми числами. В их число включают команды пересылки данных и ввода-вывода, команды арифметических и поразрядных логических операций, в том числе команды сдвига, команды операций со строками символов, команды битовых операций;
– команды операций над числами с плавающей точкой;
– команды передачи управления;
– команды расширений MMX (MultiMediaExtensions) и SSE (Streaming SIMD Extensions), поддерживающие технологию SIMD (SingleInstruction–MultipleData) над целыми числами (ММХ) и числами с плавающей точкой (SSE). Команды данной группы выполняют однотипные действия сразу над всеми числами в упакованных форматах;
– команды поддержки языков высокого уровня;
– системные команды поддержки функций ОС по управлению памятью, средствами защиты и переключению задач;
– команды управления МП.
В системы команд конкретных МП могут входить команды, не вписывающиеся в предложенную классификацию. Подобные команды не отражают общих принципов построения программ и рассматриваются как дополнительные.