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

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

Предварительно решаемая задача должна быть представлена последовательностью таких операций, которые способна выполнить ЭВМ (МПС). Затем на каждую из этих операций должна быть составлена так называемая команда.

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

Система команд и их особенности жестко фиксированы конструкцией микропроцессора и не могут быть изменены.

В системе команд для каждой команды описываются:

  • • мнемоника команды;
  • • код операции;
  • • формат команды;
  • • назначение команды;
  • • конкретное содержание;
  • • методы адресации;
  • • влияние команды на регистр признаков;
  • • число и типы машинных циклов;
  • • минимальное число машинных тактов.

Поскольку МП способен воспринимать только длинные цепочки битов, работать с которыми утомительно, для удобства используют более компактную запись команд в виде шестнадцатеричного кода. Шестнадцатеричное кодирование имеет очевидное преимущество перед двоичным, однако для сложных и длинных программ и оно неудобно. Написание, чтение и отладка программ еще более упрощается при использовании записи команд в мнемокоде, когда каждой команде присваивается определенный набор букв, напоминающий действие этой команды (например, мнемоника MOV соответствует команде пересылки данных). Такие машинно-ориентированные языки программирования МП называют ассемблерами (для разных семейств МП могут быть свои ассемблеры). С помощью специальной программы цепочка команд затем автоматически переводится в двоичные коды, причем этот процесс очень напоминает обычный перевод со словарем иностранного текста.

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

При изучении системы команд любого МП удобно группировать их по некоторым специфическим признакам.

На рис. 11.90 приведена классификация команд МП по основным признакам.

По функциональному назначению все команды базового набора могут быть отнесены к одной из следующих групп:

  • команды передачи данных (из памяти в регистр и наоборот, пересылка из регистра в регистр);
  • арифметические и логические команды (сложение и вычитание, для более совершенных МП — умножение и деление, сравнение, сдвиг разрядов влево или вправо, логические операции «И», «ИЛИ», «НЕ» и др.);
  • команды переходов из одной точки программы в другую (в том числе, так называемые, условные переходы по результатам предыдущей операции и т.п.);
  • команды управления (работой МП; вводом — выводом, работой со стеком и др.).

Код команды содержит поле кода операции (КОП) и поле адресов операндов.

По формату базовые команды подразделяются на трехадресные, двухадресные, одноадресные и безадресные.

В трехадресной команде содержится три адреса и она имеет следующий формат:

где КОП — код операции, определяющей действие, которое должно быть выполнено; Аг — первый адрес — адрес ячейки оперативной памяти, в которой хранится первый операнд; А2 — второй адрес — адрес второго операнда; А3 — третий адрес — адрес ячейки оперативной памяти, в которую должен помещаться результат операции.

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

Результат операции в этом случае помещается в ячейку памяти одного из операндов или остается в АЛУ.

Одноадресные команды имеют формат

Классификация команд МП

Рис. 11.90. Классификация команд МП

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

Существуют также безадресные команды, в которых адрес не указывается. Такие команды имеют формат

В зависимости от способа кодирования базовые команды МП могут быть с фиксированным полем КОП и с расширяющимся полем КОП.

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

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

При непосредственной адресации необходимые данные содержит сама команда.

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

При регистровой адресации в коде команды указывается регистр, содержащий операнд. При регистровой неявной адресации в коде команды регистры не указываются.

При косвенной адресации в команде указывается адрес ячейки памяти, в которой находится адрес ячейки памяти, где хранится операнд.

При стековой адресации адрес операнда указывается в регистре указателя стека.

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

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >