Полная версия

Главная arrow Информатика arrow Архитектура ЭВМ и систем

  • Увеличить шрифт
  • Уменьшить шрифт


<<   СОДЕРЖАНИЕ   >>

5.4. Команды

Входное воздействие в виде двоичного кода, предназначенное для управления микропроцессором, называется командой (или инструкцией). Ее главная функция – выполнение операций над данными. Команда предписывает шаги по реализации микропроцессором заданной операции, представляющей собой функционально завершенное действие, которое определяется типом используемых данных, источником их получения, операцией над ними, приемником размещения результата, источником получения следующей команды [18]. Машинное представление команды в памяти, состоящее из ряда нулей и единиц, называется объектным кодом команды. Для лучшего восприятия команды используется ее символическое обозначение или мнемокод.

Формат команды

Каждая команда должна содержать сведения, необходимые для ее выполнения. Сведения кодируются. Для кодировки каждой группы сведений выделяется свое поле. Совокупность полей, содержащих необходимые сведения для выполнения требуемой операции, называют форматом команды. В формате команды должны быть определены:

  • • функциональное назначение операции в виде кода операции;
  • • адреса источников данных. В общем случае должны быть указаны адреса двух операндов;
  • • адрес места расположения результата;
  • • адрес следующей команды.

Способы уменьшения формата команды. Рас смотрим гипотетическую ситуацию. Допустим, что в формате команды:

  • • поле кода операций (КО) занимает 4 разряда, что позволяет закодировать 24 = 16 операций;
  • • под адреса двух операндов-источников, адрес места расположения результата, адрес следующей команды выделены поля AO1, А02, АР, АСК (рис. 5.20) по 12 разрядов, что позволяет в каждом случае адресовать 212 = 4К ячеек памяти.

Формат команды

Рис. 5.20. Формат команды

Как видно из рис. 5.20, несмотря на скромные возможности команды, ее общая длина составляет достаточно большое число (52) бит. Для сокращения количества разрядов команды часть информации должна быть задана неявно и не должна зависеть от особенностей конкретной команды.

Наиболее употребительными являются следующие способы сокращения длины кода команды:

  • • использование специально предусмотренных для адресации регистров: программного счетчика, указателя стека и др. Например, при выполнении команд с последовательно возрастающими адресами программный счетчик автоматически считывает из памяти следующую команду. В этом случае в формате команды отсутствует поле адреса следующей команды;
  • • использование неявных способов адресации. Например, при использовании неявной регистровой адресации адрес следующей команды или операнда хранится в регистре, код которого содержит значительно меньшее число разрядов, чем код исполнительного адреса;
  • совмещение источника одного из операндов с приемником результата. В этом случае в формате команды исключается поле адреса результата;
  • • использование команд с укороченной адресацией, т.е. части адресного пространства памяти;
  • • использование для некоторой группы операции одного регистра. Наиболее часто для этой цели используется аккумулятор. В операциях с аккумулятором не требуется его кодировка. Например, команда ADD В выполняет операцию сложения содержимого регистра В с аккумулятором А и в него же помещает результат. Такая команда является одноадресной. Ее формат состоит из двух полей: кода операции и адреса операнда. Однако одноадресные команды требуют дополнительных команд для предварительной загрузки операндов в аккумулятор и последующего размещения результатов в памяти;
  • • использование нескольких аккумуляторов (Motorola 6800, National РАСЕ, Signetic 2650). В этом случае каждая команда имеет два адреса, однако адрес источника и места назначения может быть задан другим аккумулятором.

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

  • • засылку команд (первого байта) в регистр команд с дальнейшей их дешифрацией для активизации устройства управления;
  • • поступление данных (последующих байт) в аккумулятор или другие регистры для обработки в АЛ У.

Форматы команд 8-разрядного процессора. Длина команды составляет от 1 до 3 байт. Код операции всегда размещается в первом байте команды. Второй и третий байты отводятся под непосредственные данные, адрес порта или ячейки памяти. В командах допускается явное задание только одного адреса памяти. Поэтому система команд процессора относится к классу одноадресных команд.

Форматы команд процессора 8086 изображены на рис. 5.21, где обозначено: ОРС (Operation Code) – код операции; X – биты кода

Форматы команд 8-разрядного процессора

Рис. 5.21. Форматы команд 8-разрядного процессора

операции; dst, src – указатели приемника и источника данных; port – адрес порта; data – данные; addr – адрес памяти; LB, НВ – младший и старший байты.

 
<<   СОДЕРЖАНИЕ   >>