Для
того чтобы микропроцессор мог выполнить ту или иную операцию, необходимы
инструкции, или команды [10].
Команды
хранятся в основной памяти. Каждая команда – это группа битов, соответствующая
определённой операции.
Обычно
команда делится на поля, каждое из которых определяет какой-либо атрибут
команды, а поле операции в ней определяет саму выполняемую операцию
(сложение, пересылка, дополнение и т. д.).
Код
каждой операции – это уникальная последовательность битов длиной от
1 до 2 байт.
Код
операции |
Регистр |
Адресное
поле |
Поле регистра определяет номер регистра, который содержит данные,
принимающие участие в операции, а адресное поле служит для определения
участка памяти, содержащего данные, используемые при вычислениях (длина
от 0 до 8 байт).
Команды
размещают в оперативной памяти (ОП) в определённой последовательности
– по порядку выполнения.
Очередная
выполняемая команда определяется с помощью содержимого специального
регистра – счётчика команд. Последний содержит адрес области памяти,
в которой расположена следующая выполняемая команда.
Микропроцессор
использует содержимое счётчика команд для выборки из памяти этой команды.
Во время выполнения команда хранится в регистре команд. Различные
команды для размещения в ОП используют различное количество битов,
так как в некоторых командах есть адресное поле, а в некоторых нет.
А потому ЭВМ использует команды переменной длины: 1, 2, …, 11 байт.
В зависимости от этой длины, в счетчик добавляется число 1, 2, …,
11 (по количеству байт).
Работа
процессора сводится к выполнению повторяющихся рабочих циклов, каждый
из которых соответствует определённой выполняемой команде.
Есть
операции над целыми числами: команды пересылки, арифметических, логических,
битовых операций, сдвигов и операций со строками символов.
Операции
над числами с плавающей точкой выполняются тоже в процессоре: пересылки
данных, арифметические, сравнения и команды управления FPU.
Кроме
этих операций, есть ещё команды управления программой, защиты памяти
и поддержки языков высокого уровня.
Выполнение
любой команды начинается с анализа запроса прерывания. Если прерывания
нет, то выбирается команда, а иначе обрабатывается прерывание.
После
выборки команды сразу формируется адрес следующей команды и анализируется
код операции текущей команды.
В зависимости
от кода, формируются адреса операндов команды или выполняются действия
по кодам операций управления.
Затем
выполняются сами операции, формируются признаки результата и запоминается
результат.
После
этого управление передаётся на выполнение следующей команды.