Смекни!
smekni.com

Основы информатики 2 2 (стр. 6 из 12)

Поэтому в форматах команд поле А4 не указывается Это приводит к трёхадресной команде, имеющей формат:

Коп А1 А2 А3

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

Коп А1 А2

Операнды размещаются по адресам А1, А2 , а результат выполнения операции заносится по адресу первого операнда А1 при этом значение операнда теряется. Использование аккумулятора позволяет по умолчанию размещать один из операндов в нём и не указывать адрес этого операнда в команде. В этом случае команда одноадресная и имеет формат

Коп А1

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

Коп

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

25. Подразумеваемая, непосредственная, прямая, регистровая и косвенная адресация

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

Адресный код (Ак) – код указываемый в адресной части команды, который содержит информацию об адресе операнда.

Исполнительны адрес (Аи) – адрес ячейки ОП или регистра.

В общем случае Ак ¹ Аи.

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

2) Непосредственная адресация. В этом случае значение операнда указывается в адресной части команды. Наиболее часто используется при адресации константы, пишем в операцию сразу её значение

3) Прямая адресация – в этом случае в адресной части команды указывается адрес ячейки памяти Иа , при этом Аи = Ак. Этот способ наиболее часто использовался в ЭВМ первого и второго поколения. Недостаток – с ростом объёма памяти пишутся длинные команды mov al,[10abf002h]

4) Регистровая адресация. При регистровой адресации в адресной части указывается адрес регистра хранящего операнду – наиболее экономичный способ адресации. При регистровой адресации длинна адресной части получается коротко т.к. номер регистра является его адресом, занимает длину пол байта в случае sub cx,bx. При регистровой адресации благодаря короткой длине команд экономится память при размещении программы в ОП, кроме того такие команды уменьшают число обращений к ОП, что повышает быстродействие.

5) Косвенная адресация. В этом случае в команде указывается не адрес операнда, а адрес регистра или ячейки памяти содержащий адрес операнда. Не адресация операнды, а адресация памяти.

Косвенная адресация предполагает как минимум 2 обращения к ОП , если адрес операнда хранится в ОП. Допускается использование многоступенчатой косвенной адресации. В этом случае в команде указывается адрес первой ячейки и кратность адресации, а операнд располагается в последней адресной ячейке. В современных ЭВМ допускается 6¸8 кратная адресация, но как правило косвенная адресация однократна. В малых и микро ЭВМ с короткой длинной длиной машинного слова, косвенная адресация позволяет обойти проблемы возникающие при адресации ячеек памяти, адреса которых имеют большую длину. В этом случае адрес ячейки памяти записывается в регистр. В команде указываться адрес регистра хранящего адрес операнда. add cz,[bx] или mov eax,[ecx] На наличие косвенной адресации в команде может указываться либо код операции команды, либо специальный бит отводимый в коде команды для указания на способ адресации. Если этот бит 1 – адресация косвенная, иначе нет.

26. Относительная и индексная адресация

В этом случае адрес операнда задается относительно некоторого базового адреса (Аб).

Для хранения Аб выделяется специал. регистр, который называется базовым регистром. Это может быть один из РОН.

Будем в дальнейшем обозначать такой регистр В, а его содержимое (В); D-смещение.

При относительной адресации в адресной части команды указывается номер базового регистра и смещение:

Коп . . . В D

Принцип относительной адресации поясняется схемой:


Схема, поясняющая формирование Аи, показана на рис.:

При реализации оптимальной адресации процессор по номеру базового регистра В, содержащегося в команде находит в РОН базовый регистр передает его содержимое на сумматор СМ, куда поступает также D. На выходе сумматора формируется исполнительный адрес Аи.

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

Одно из основных достоинств относительной адресации возможность перемещения программы в ОП. Для этого достаточно изменить содержимое базового регистра. При использовании этой адресации в ассемблерных программах адрес операнда представляется в виде записи регистр + смещение, который помещается в [].

Sub AX,[EBX+8]

Индексная адресация.

Используется при обработке массивов и организации циклов. Массив – упорядоченная совокупность элементов одинакового типа. Различные элементы массива имеют одинаковую длину и располагаются последовательно в ОП. Положение элементов внутри массива задается с помощью индексов. Для хранения индекса при индексной адресации среди РОН выделяется индексный регистр. Значение Аи=(В)+(Х)+Р, где Х - индексный регистр, (Х) – его содержимое.

Схема формирования Аи приведена на рис.:


При выполнении команды по номерам базового и индексного регистров, содержащимся в команде, процессор обращается к соответствующим регистрам, извлекает их содержимое и передает на сумматор, куда поступает также смещение D. На выходе сумматора формируется Аи элемента массива. При индексной адресации одна и та же команда без изменения отдельных ее частей может многократно выполнятся в цикле. При этом автоматически происходит изменение содержимого индексного регистра Х путем увеличения автоинкримента на 1, либо наоборот при каждом прохождении цикла. В ассемблерных командах имя Х указывается в [] :

MOV AX,[EBХ][EDX].

В современных 32 битных микропроцессорах допускается масштабирование Х, если операнды являются 32-битовыми. Но заключаются в умножении содержимого Х на значения 2, 4, 8. Такой прием удобен при организации обработки элементов массива, имеющих длину 2, 4, 8 байт. В этом случае ассемблерная команда:

MOV AX,[EBХ][EDX*8], где [EDX*8] индексный регистр.

28. Стековая адресация

Используется при работе со стековой памятью и представляет собой один из безадресных (подразумеваемых) способов адресации. Это связано с тем, что в стековой памяти запись и чтение информации осуществляется через одну и ту же ячейку памяти. Называемую вершиной стека. Этот процесс иллюстрируется следующей схемой:

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

Операции со стековой памятью широко используются в современных ЭВМ для организации работы с подпрограммами.

29. Алгоритм работы процессора. Рабочий цикл процессора

1.вычисление адреса ком-ды

2.выборка ком-ды

3.декодирование ком-ды

4.вычисление адресов операндов

5.выборка операндов

6.исполнение операции

7.запись результата

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