Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МП лекция 1 сем.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
959 Кб
Скачать
☆

4.4 Команды процессора

4.4.1 Система команд процессора

Команда МП - это такое двоичное слово, которое, будучи прочитано микропроцессором, обеспечивает выполнение им определенных действий.

Группа команд, которые может выполнять данный МП, называется его составом команд.

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

Система команд процессора представлена на рисунке 14.

В общем случае система команд процессора включает в себя следующие четыре основные группы команд:

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

  • арифметические команды;

  • логические команды;

  • команды переходов.

Рисунок 14 - Классификация команд ассемблера

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

  • загрузка (запись) содержимого во внутренние регистры процессора;

  • сохранение в памяти содержимого внутренних регистров процессора;

  • копирование содержимого из одной области памяти в другую;

  • запись в устройства ввода/вывода и чтение из устройств ввода/вывода.

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

2) Арифметические команды. Арифметические команды рассматривают коды операндов как числовые двоичные или двоично-десятичные коды. Эти команды могут быть разделены на пять основных групп:

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

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

В) команды очистки - предназначены для записи нулевого кода в регистр или ячейку памяти. Эти команды могут быть заменены командами пересылки нулевого кода, но специальные команды очистки обычно выполняются быстрее, чем команды пересылки.

Г) команды инкремента (увеличения на единицу) и декремента (уменьшения на единицу). Эти команды требуют одного входного операнда, который одновременно является и выходным операндом.

Д) команда сравнения - предназначена для сравнения двух входных операндов. В некоторых процессорах предусмотрены команды цепочечного сравнения двух последовательностей операндов, находящихся в памяти.

3) Логические команды. Логические команды выполняют над операндами логические (побитовые) операции, то есть они рассматривают коды операндов не как единое число, а как набор отдельных битов. Логические команды выполняют следующие основные операции:

  • логическое И, логическое ИЛИ, сложение по модулю 2 (Исключающее ИЛИ);

  • логические, арифметические и циклические сдвиги;

  • проверка битов и операндов;

  • установка и очистка битов (флагов) регистра состояния процессора (PSW).

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

Команды переходов делятся на две группы:

  • команды безусловных переходов - вызывают переход в новый адрес независимо ни от чего;

  • команды условных переходов - вызывают переход не всегда, а только при выполнении заданных условий.

Команды условных переходов. В качестве таких условий обычно выступают значения флагов в регистре состояния процессора (PSW). То есть условием перехода является результат предыдущей операции, меняющей значения флагов. Всего таких условий перехода может быть от 4 до 16. Несколько примеров команд условных переходов:

  • переход, если равно нулю;

  • переход, если не равно нулю;

  • переход, если есть переполнение;

  • переход, если нет переполнения;

  • переход, если больше нуля;

  • переход, если меньше или равно нулю.

Особое место среди команд перехода занимают команды прерываний. Эти команды в качестве входного операнда требуют номер прерывания (адрес вектора).