Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Системы команд




Способы адресации.

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

1. Безадресный способ. Здесь команда обращается к конкретным устройствам, например к аккумулятору. Операндом является содержимое регистра команд. С памятью этот способ не связан.

2. Непосредственная адресация. В адресном поле команды указывается сам операнд. Адресные преобразования исключаются, с памятью не связан. Применяется в микроконтроллерах.

3. Прямая адресация. Эффективный адрес (ЕА) равен смещению. Смещение указывается в виде числа в команде. Физический адрес равен ЕА. Адресных преобразований не производится. Такая адресация применяется в простых 8-16 разрядных микропроцессорах.

4. Базовая адресация. ЕА=база+ смещение. База – это содержимое базового регистра, указывает на начало сегмента. Смещение, число, указываемое в команде. Физический адрес равен эффективному, т.е. определяется как адрес ячейки в сегменте, начало которого задается базой.

5. Индексная адресация. ЕА=индекс+смещение. Индекс содержится в индексном регистре.

6. Масштабированная адресация. ЕА=масштаб*индекс+смещение. Масштаб представляет собой число 1,2,4,8.

Таким образом, адрес, указываемый в команде в общем случае расположен в трех регистрах: сегментном, базовом, индексном. Преобразование адреса в физический адрес происходит в два этапа.

Сначала учитываются только базовый и индексный регистры (если они указаны в команде) и вычисляется эффективный адрес. Если в команде не предусмотрено обращения к памяти, (например, она загружает адрес в регистр), то на этом адресное преобразование заканчивается и в регистр загружается эффективный адрес.

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

Пример команды: mov EAX, ES:(edx*4+129).

 

 

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

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

Основные команды классифицируются следующим образом.

По назначению команды подразделяются на:

- команды пересылки данных;

- арифметические команды;

- логические команды;

- команды перехода;

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

По формату команды делятся на трехадресные, двух адресные и одноадресные.

Рассмотрим примеры команд.

1. Команды пересылки данных. Mov r1,r2 – по этой команде пересылаются данные из регистра-источника (r2) в регистр-приемник (r1). В качестве источника и приемника могут выступать любой из регистров РОН. MOV M,r – пересылка из регистра в память.

2. Положительное (отрицательное) приращение (INR r) - по этой команде содержимое регистра увеличивается на 1.

Арифметические и логические команды ADD r – сложение содержимого регистра-источника с содержимым аккумулятора, ANA r – логическое И над содержимым регистра-источника и аккумулятора.

3. Операции переходов JNZ – условный переход по какому-либо признаку

4. Операции ввода-вывода IN – ввод данных с шины данных.

Кроме того в этом классе команды различаются по типу выборки и пересылок данных: регистр-регистр; память –регистр; регистр-память; память-память.

Команда должна содержать всю информацию о операции, что приводит к различным форматам команд

Трехадресная команда [ КОП А1 А2 А3] включает код операции (КОП). А2 и А3 – адреса регистров или ячеек памяти, где расположены первый и второй операнды, А1 – адрес регистра или ячейки, куда следует поместить результат операции.

Типовая структура двухадресной команды [ КОП А1 А2] включает код операции, А1 – адрес ячейки или регистра, где хранится первый операнд и куда после завершения операции должен быть записан результат операции, А2 – обычно адрес ячейки или регистра, где хранится второй операнд Такая структура соответствует типовым командам процессоров Intel. Например, MOV C, D пересылка в регистр С содержимого регистра D.

Одноадресная команда имеет структуру [КОП А1 ], где А1 может обозначать либо адрес ячейки или регистра, где хранится один из операндов, либо адрес ячейки или регистра, куда следует поместить результат операции. Пример ADD C – сложить с содержимым аккумулятора содержимое регистра С, результат поместить в аккумулятор.

Существуют еще и безадресные команды, которые содержат только код операции, информация для нее должна быть заранее помещена в определенные регистры. Например, IN – ввод данных с шины данных в аккумулятор.

Наибольшее применение нашли двухадресные команды.

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

Введение новых способов адресации значительно усложняют структуру команды. Если первоначально использовалась только прямая адресация, когда в команде в байте кода операции указывался адрес операнда. Например адресом аккумулятора является 111 (напомним, что исходно язык, который понимает процессор – это язык кодовых комбинаций), адресом регистра С 001, поэтому команда пересылки из регистра с в аккумулятор будет иметь в машинных кодах вид 01 111 001.

Непосредственная адресация предполагает задание операндов в команде вслед за КОП. Например команда MVI D запишется

00 010 110

01 001 110 и произведет пересылку числа приведенного во втором байте команды в регистр D, адрес которого (010) указан в 3,4, 5 разрядах первого байта команды. Структура кода команды (первого байта при этом имеет вид 00 r 010.

Применяемая сейчас в большинстве случаев относительная адресация, когда адрес отсчитывается относительно какого-либо регистра значительно усложняет команду. Например команда MOV EAX, ES:[edx*4+129] означает пересылку в 32-разрядный регистр EAX числа, расположенного в ячейке памяти с началом сегмента, хранящимся в регистре ES, индексом, хранящимся в в индексном регистре EDX, умноженном на 4,и смещением 129.

Рассмотрим, как процессор выполняет команды.

В процессе выполнения команды УУ процессора производит анализ и пересылку команды из одного регистра в АЛУ, память или устройство ввода-вывода. Для реализации одной команды требуется выполнить определенное количество микрокоманд, каждая из которых инициирует одновременное выполнение одной или нескольких микроопераций за время одного рабочего такта ЭВМ. Общее количество тактовых импульсов, требуемых для выполнения одной команды, называется циклом команды. УУ может находиться в одном из четырех состояний: выборка команды, выборка адреса, выполнение и прерывание. Длительность каждого состояния определяет время выполнения машинного цикла, из которых состоит цикл команды.

Выборка команды. В данном машинном цикле выполняются чтение команды из памяти, ее частичное декодирование.

Выборка адреса. Этот машинный цикл следует за выборкой команд для адресных команд. Он используется для чтения адреса операнда из памяти и состоит из следующих шагов:1) адресная часть команды пересылается из регистра данных в регистр адреса,2) содержимое ячейки памяти, указываемое регистром адреса считывается в регистр данных, теперь в этом регистре находится адрес операнда, который будет использоваться в цикле выполнение, 3) содержимое регистра данных увеличивается на 1, 4) измененное содержимое регистра данных пересылается в ячейку памяти по адресу, указанному регистром адреса, 5) содержимое регистра данных уменьшается на 1, после чего в регистре данных восстанавливается значение адреса, соответствующего текущей команде.

Выполнение. Последовательность действий в этом цикле определяется типом команды. 1) для команд, при выполнении которых требуется выборка операнда из памяти, состояние выполнения используется для чтения операнда и выполнения операции. 2) для команд пересылки в этом цикле производится запись содержимого аккумулятора в ячейку памяти с адресом, расположенном в регистре данных. 3) для команд перехода в этом цикле производится проверка соответствующего условия и пересылка адреса в счетчик команд при выполнении этого условия.

Система команд каждого процессора включает описание кода команды, ее мнемонику (обозначение), состояние признаков. Процессор понимает только машинные коды, которые являются очень трудоемкими. Машинные команды занимают наименьший объем памяти и быстрее выполняются. Язык кодовых комбинаций имеет свои достоинства и недостатки К недостаткам следует отнести громоздкость программы и возможность ошибок, к достоинствам – программа занимает минимальный объем памяти и быстрее исполняется. Трудности программирования уменьшаются при использовании языка ассемблера. В этом языке вместо кодовых комбинаций применяется мнемоническая форма записи операций, в виде сочетаний букв и слов. Язык ассемблера упрощает запись команд, обеспечивает лучший обзор программы и простоту внесения исправлений в программу. Перед исполнение программа должна быть переведена на язык кодовых комбинаций и записана в память. Перевод осуществляется на ЭВМ с помощью программы трансляции, называемой ассемблером.

Язык ассемблера индивидуален для каждого процессора, однако разработчики систем стремятся к преемственности команд.

 




Поделиться с друзьями:


Дата добавления: 2014-12-16; Просмотров: 800; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.