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