Классификация и структура команд процессора 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Классификация и структура команд процессора



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

1) команды пересылки данных и ввода – вывода;

2) команды арифметических и поразрядных логических операций;

3) команды передачи управления.

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

Например, в языке ассемблера к командам этой группы можно отнести команду пересылки MOV, команду загрузки LOAD, команды записи в порт и чтения из порта УВВ, IN и OUT, соответственно. Также сюда часто включают команды помещения данных в стек PUSH и извлечения данных из стека POP.

Примеры:

mov ax,4; Переслать в регистр ax значение 4

mov al,a; Переслать в регистр al значение по адресу a

mov a,al; Переслать в ячейку по адресу a содержимое регистра al

 

in al,61h; Считать в регистр al значение порта 61 h

out 61h,al; Вывести в порт 61 h содержимое регистра al

В число команд арифметических и поразрядных логических операций в большинстве случаев входят команды простейших арифметических операций, например, ADD (сложить), SUB (вычесть), а также логических операций, например, ANDИ»), ORИЛИ») и т.п. К арифметическим командам относят также команды арифметических и логических сдвигов, а к командам логических операций – команда сравнения COMPARE (неразрушающего вычитания). В число команд этой группы могут входить команды сложных арифметических операций: умножение, деление (есть не во всех процессорах), команды обработки данных с плавающей точкой, команды мультимедийной обработки.

Примеры:

add ax,4; Сложить содержимое регистра ax со значением 4

sub al,a;  Вычесть из регистр al значение по адресу a

mul a; Умножить значение по адресу a на содержимое регистра al

or al,00000001b; Установить в регистре al значение нулевого                              ; бита в 1

and ah,0; Сбросить все биты регистра al в 0

Команды передачи управления используются для изменения последовательности выполнения команд при наличии программных ветвлений: команд условных и безусловного (JMP) переходов, обращении к подпрограммам (CALL) и выхода из них (RETURN). Команды условных переходов реализуют передачи управления в зависимости от значения флагов в регистре PSW. С их помощью процессор выполняет одну из возможных ветвей продолжения программы. Обычно в системе команд имеется несколько команд условных переходов.

Пример:

jmp m1; Перейти на команду с адресом m 1

m1: mul a; Умножить значение по адресу a на содержимое                           ;регистра al

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

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

Выполнение команды (машинной операции) разделено на более мелкие этапы – микрооперации (микрокоманды), во время которых выполняются определённые элементарные действия. Конкретный состав микроопераций определяется системой команд и логической структурой ВМ. Последовательность микрокоманд, реализующих данную операцию (команду), образует микропрограмму операции. Интервал времени, в течение которого выполняется одна или одновременно несколько микроопераций, называется машинным тактом. Границы тактов задаются синхросигналами, которые вырабатываются генератором синхросигналов.

В общем случае, команда микропроцессора содержит две части: операционную и адресную (рис. 4).

Операционная часть
Адресная часть
A1
A2
A3
A4
Адреса операндов
Адрес результата
Адрес след. команды
Код операции
КОП

Рис. 4. Прямая адресация

Соглашение о распределении разрядов между этими частями команды и способе кодирования информации определяет структуру (формат) команды.

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

В k -разрядной адресной части команды содержится информация об адресах операндов, участвующих в выполнении операции. В общем случае адресная часть команды должна содержать четыре адресных поля A 1, A 2, A 3, A 4. Они предназначены для задания адресов операндов (A 1, A 2), адреса результата (A 3) и адреса следующей команды (A 4). В качестве адресов A 1,…, A 3 могут использоваться адреса ячеек оперативной памяти и адреса регистров микропроцессорной памяти, в качестве адреса A 4 – только адреса ячеек оперативной памяти.

При использовании полного набора адресов формат команды оказывается громоздким. Следует отметить, что не для всех операций необходим полный набор адресов A 1 – A 4. В зависимости от указываемого числа адресов команды подразделяются на 0-адресные или безадресные (например, NOP – ничего не делать), 1-адресные (например, PUSH AX – поместить содержимое регистра AX в вершину стека), 2-адресные (например, ADD AH,AL – сложить содержимое регистров AH и AL), 3-адресные (тогда операция сложения, например, могла бы выглядеть следующим образом: ADD AH,AL,BX – сложить содержимое регистров AH и AL с сохранением результата в регистре BX) и 4-адресные (операция сложения могла быть записана, например, так ADD AH,AL,BX, 0020 – сложить содержимое регистров AH и AL с сохранением результата в регистре BX и последующей загрузкой команды по смещению 0020 в сегменте кода).

Практически во всех микропроцессорах адрес A 4 исключён. Это обусловлено тем, что большинство команд относятся к линейным участкам алгоритмов, и такие команды могут быть размещены в ячейках памяти с последовательно возрастающими адресами. В этом случае для получения адреса следующей команды к начальному адресу сегмента кода достаточно добавить смещение этой команды в сегменте кода, что удобно реализовать с помощью указателя команд (IP). Такой способ адресации команд называется естественным, а реализующие его процессоры называются процессорами с естественным способом адресации команд. При нарушении естественного порядка следования команд (ветвлениях, циклах) используются специальные команды передачи управления, в которых содержится адрес перехода, но не используются адреса операндов. Процессоры, в адресном поле команд которых используется адрес A 4, называются процессорами с принудительным способом адресации команд.

Использование адреса результата A 3 во многих случаях также оказывается избыточным. Это обосновывается тем, что результат арифметических и логических операций над двумя операндами обычно может быть помещён на место одного из операндов, который в дальнейшем, скорее всего, использоваться не будет. При этом в 2-адресных командах в адресное поле необходимо вводить дополнительные разряды, показывающие, кто из них является источником, а кто – приёмником информации. В процессорах с аккумуляторной архитектурой число адресов в адресной части команды уменьшено до одного. В них один из операндов, размещённых в аккумуляторе, неявно задаётся кодом команды, и результат помещается в аккумулятор.

В безадресных командах осуществляется неявное задание операнда. К таким командам относятся команды управления процессором (например, пуска, останова и т.д.) и команды для работы со стеком (операнд, адресуемый указателем SP, неявно задаётся кодом команды). Безадресные команды имеют предельно сокращённый формат, но не могут самостоятельно образовать функционально полную систему команд и поэтому применяются только вместе с адресными.

Формат команд влияет на время решения задач, затраты памяти, сложность процессора и зависит от класса решаемых задач. В частности, для научно- технических расчётов, в которых большой объём занимают многошаговые вычисления, более эффективными оказываются 1-адресные команды, а при использовании стекового процессора – и безадресные команды. Для задач управления, где большую долю составляют пересылки и логические операции, эффективными являются 2-адресные команды. Исходя из сказанного выше, следует отметить, что в современных процессорах обычно используются безадресные, 1-адресные и 2-адресные команды. 3-адресные команды используются крайне редко, а 4-адресные не используются совсем.

Для процессора Intel 8086 используются следующие форматы команд:

1) формат команды «регистррегистр» (длина 2 байта);

2) формат команды «регистрпамять» (длина 2 – 4 байта);

3) формат команды «регистрнепосредственный операнд» (длина 3 – 4 байта);

4) формат команды «памятьнепосредственный операнд» (длина 3 – 6 байтов).

В зависимости от структуры данных и их местонахождении доступ к ним может осуществляться различными способами. Рассмотрим режимы адресации данных для микропроцессора Intel 8086.

 



Поделиться:


Последнее изменение этой страницы: 2020-12-09; просмотров: 542; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.14.253.152 (0.009 с.)