Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Классификация и структура команд процессора
По функциональному признаку все команды процессора можно разделить на следующие группы: 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).
Рис. 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 с.) |