Почему могут спускать колеса авто смотрите тут kamael.com.ua
Как снять комнату в коммунальной квартире здесь
Дренажная система водоотвода вокруг фундамента - stroidom-shop.ru


Команды в микропроцессоре

Основные понятия.

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

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

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

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

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

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

Способы уменьшения формата команды.

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

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

● под адреса двух операндов–источников, адрес места расположения результа­та, адрес следующей команды выделены поля А

O

1, А

O

2, АР, АСК (рис. 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

(регистр/память);

port

8 — корот­кий 8–разрядный адрес порта;

disp

— смещение;

offset

— смещение;

sel

— селек­тор;

vect

— вектор прерывания;

v

— сдвиговый флаг;

cc

— 4–разрядное поле, для кодирования 16 условий перехода. рис. 2.7.3



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