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

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

●     функциональное назначение операции в виде кода операции;

●     адреса источников данных. В общем случае должны быть указаны адреса двух операндов;

●     адрес места расположения результата;

●     адрес следующей команды.

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

●     поле кода операций (КО) занимает 4 разряда, что позволяет закодировать 24 = 16 операций;

●     под адреса двух операндов–источников, адрес места расположения результа­та, адрес следующей команды выделены поля АO1, АO2, АР, АСК (рис. 2.7.1) по 12 разрядов, что позволяет в каждом случае адресовать 212 = 4К ячеек памяти.

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

рис. 2.7.1

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

●     использование специально предусмотренных для адресации регистров: про­граммного счетчика, указателя стека и др. Например, при выполнении ко­манд с последовательно возрастающими адресами программный счетчик ав­томатически считывает из памяти следующую команду. В этом случае в фор­мате команды отсутствует поле адреса следующей команды;

●     использование неявных способов адресации. Например, при использовании неявной регистровой адресации адрес следующей команды или операнда хранится в регистре, код которого содержит значительно меньшее число раз­рядов, чем код исполнительного адреса;

●     совмещение источника одного из операндов с приемником результата. В этом случае в формате команды исключается поле адреса результата;

●     использование команд с укороченной адресацией, т. е. части адресного про­странства памяти;

●     использование для некоторой группы операций одного регистра. Наиболее часто для этой цели используется аккумулятор. В операциях с аккумулятором не требуется его кодировка. Например, команда ADD В выполняет операцию сложение содержимого регистра В с аккумулятором А и в него же помещает результат. Такая команда является одноадресной. Ее формат состоит из двух полей: кода операции и адреса операнда. Однако одноадресные команды требуют дополнительных команд для предварительной загрузки операндов в аккумулятор и последующего размещения результатов в памяти;

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

●     засылку команд (первого байта) в регистр команд с дальнейшей их дешифра­цией для активизации устройства управления;

●     поступление данных (последующих байт) в аккумулятор или другие регистры для обработки в АЛУ.

Форматы команд некоторых процессоров. Рассмотрим в общих чертах форматы команд 8–разрядного (8080) и 16–разрядного (8086) процессоров. Дли­на команды кратна байту и может составлять один, два и более байт.

Достаточно простые форматы имеют команды процессора 8080 (рис. 2.7.2). Длина команд составляет от 1 до 3 байт. Код операции всегда размещается в первом байте команды. Второй и третий байты отводятся под непосредствен­ные данные, адрес порта или ячейки памяти. В командах допускается явное зада­ние только одного адреса памяти. Поэтому система команд процессора 8080 от­носится к классу одноадресных.

рис. 2.7.2

На рис. 2.7.3 изображены форматы команд процессора 8086. Длина команд составляет от 1 до 6  байт.

На рис. 2.7.2 и 2.7.3 обозначено: ОР — код операции; X — биты кода опера­ции; dst, src — указатели приемника и источника данных; port — адрес порта; data — данные; addr — адрес памяти; w — тип операнда (w = 0 — байт, w = 1 — слово); d — направление передачи (d = 0 — «из», d = 1 — «в»); s — признак рас­ширения байта в слово; reg — трехразрядное поле для кодирования регистров AL–BH; seg — двухразрядное поле для кодирования сегментных регистров; mod — определяет режим, заданный полем  r/m (регистр/память); port8 — корот­кий 8–разрядный адрес порта; disp — смещение; offset — смещение; sel — селек­тор; vect — вектор прерывания; v — сдвиговый флаг; cc — 4–разрядное поле, для кодирования 16  условий перехода.

рис. 2.7.3


Рекомендуйте эту статью другим!



рис. 3.25
дек 29, 2016 554

Особенности выходных каскадов цифровых микросхем

Часто возникает необходимость подключения выходов нескольких цифровых микросхем к одной…
Микроконтроллеры MCS51
дек 01, 2015 1125

Микроконтроллеры MCS–51. Блок последовательного интерфейса, блок таймеров, блок прерываний. Часть 2.

Блок последовательного интерфейса. Назначение и состав блока. Блок последовательного…
Электропроводка в подвалах и чердаках 2
дек 09, 2013 1399

Электропроводка в подвалах и чердаках

В первую очередь, следует отметить, что подвальные и чердачные помещения принадлежат к…
рис. 2.78 а
дек 02, 2016 621

Сглаживающие фильтры

Выпрямленное напряжение имеет существенные пульсации, поэтому широко используют…
янв 31, 2013 4718

Муфты силовых кабелей, соединительные, концевые, марки, конструкция муфт

Для оконцевания кабелей, а также для соединения строительных длин кабелей применяются…