Сделай Сам Свою Работу на 5

Режимы адресации микропроцессора.

Операционные системы

Сравнительная характеристика процессоров.

 

Преподаватель:

Витушкин Павел Игоревич

Студент:

Константинов Юрий Алексеевич

 

2012 год.

 

 

IBM 360.

Регистры:

Вычислительные машины Системы 360 имеют шестнадцать 32-разрядных общих регистров и четыре 64-разрядных регистра для выполнения операций с плавающей точкой. Специальный 64-разрядный регистр предусмотрен для размещения так называемого слова состояния программы (Program Status Word - PSW), содержащего счетчик адреса, информацию, необходимую для работы системы защиты, и информацию о состоянии системы прерываний.

Общие регистры могут быть использованы для различных арифметических и логических операций и в качестве базовых регистров. При выполнении арифметических и логических операций общие регистры служат промежуточными накопителями. Их содержимое может сравниваться с некоторой величиной, к нему может прибавляться некоторое число или вычитаться из него и т.д. При использовании в качестве базового регистра общий регистр участвует в формировании адресов. Рассмотрим например команду:

Индексный регистр

А 1,901 (2,15)

Смещение базовый регистр

Эта команда представляет собой команду сложения. Некоторое число должно быть добавлено в содержимое регистра 1.

Адрес этого числа определяется путем сложения трех величин: число 901 (смещение), содержимого регистра 2(индекса) и содержимого регистра 15 (базы). Результат сожжения представляет адрес поля памяти, содержимому регистра 1.

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

Например, для адресации всего допустимого объема памяти в Системе 360 (16 миллионов байтов) без применения базовых регистров адрес должен содержать 24 двоичных разряда. Если бы рассмотренная ранее команда сложения имела формат, приведенный на следующей схеме, для размещения ее в памяти понадобилось бы 40 битов: 8 битов на код операции, 4 бита на адрес одного из 16 общих регистров, в котором находится первое слагаемое и куда будет помещен результат, 4 бита для адресации одного из 16 возможных индексных регистров и , наконец, 24 бита для адреса второго слагаемого:



Код операции Регистр аргумента Регистр индекса адрес

8 битов 4 бита 4 бита 24 бита

 

При использовании базового регистра формат команды может быть следующим. Для задания одного из 16 общих регистров в качестве базового выделим 4 бита и еще 12 битов – для смещения. Общее число битов для команды сложения оказывается равным 32. Благодаря применению принятой схемы формирования адреса достигается экономия восьми битов.

Код операции Регистр аргумента Индексный регистр база Смещение

8 битов 4 бита 4 бита 4 бита 12 битов

Недостатком такой схемы адресации являются потери, связанные с необходимостью формирования адреса в процессе выполнения команды, а также то обстоятельство, что 12-битовое смещение позволяет задавать число лишь в пределах от 0 до 4095. Это может вызвать определенные трудности при обращении к данным. Если индексный регистр не используется, а содержимое базового регистра остается неизменным, байт, к которому мы хотим обратиться, не может иметь адрес, отличающийся более чем на 4095 от адреса, определяемого содержимым регистра базы.

Данные:

Используемые в Системе 360 типы данных показаны на рисунке.

Группы битов, находящиеся в памяти, интерпретируются процессором вычислительной машины Системы 360 несколькими способами. Если содержимое двух байтового поля интерпретируется как целое число (рисунок а ), первый бит представляет знак, а остальные 15 – двоичное число. Если содержимое двухбайтового поля интерпретируется как упакованное десятичное число (рисунок в), то первый байт будет представлять две цифры в коде BCD, первые 4 бита второго байта – еще одну цифру, а последние 4 бита второго байта – знака числа (например, приведенная выше двоичная конфигурация

0000001000011101

0 2 1 знак

В этом случае означает десятичное число -021).

Как данные, так и команды физически запоминаются в виде последовательностей нулей и единиц. Так 16 – битовое число с фиксированной точкой длинной в полуслово, имеющее десятичное значение +300, хранится в двоичном виде как 0000 0001 0010 1100. Для удобства двоичные числа обычно записываются не в двоичной, а в шестнадцатеричной системе счисления ( с основанием 16). Пример +300:

0000 0001 0010 1100 -в двоичной форме

0 1 2 С -в шестнадцатеричной форме

Число с фиксированной точкой могут быть длинной в полуслово или полное слово (рисунок а,б).

Система 360 позволяет хранить в памяти числа, представленные в десятичной форме (рисунок в,г).это означает, что числа могут храниться не как двоичные, а в формате, непосредственно связанном с десятичным представлением . например число 12 может храниться в байтах памяти , первые четыре бита которого содержат десятичную единицу (0001), а остальные четыре бита – десятичное число 2 (0010). Такое представление десятичных данных удобно при решении экономических задач.

Используемые в системе 360 форматы чисел с плавающей точкой, логических данных и строк символьной информации (рисунок ж) показаны на рисунке.

В системе предусмотрены команды для обработки всех перечисленных типов данных.

 

Основные форматы команд системы 360:

OP – код операции ; Ri – содержимое общего регистра (используется как операнд);

Xi - содержимое общего регистра (используется как индекс); Bi - содержимое общего регистра (используется как база); Di – смещение; li – непосредственные данные ; L – длинна операнда.

Представленный набор команд системы 360:

Intel 80286.

Внутри микропроцессора информация содержится в группе 16-битовых элементов, называемых регистрами. Всего он имеет 14 регистров: 12 регистров данных и адресов и в дополнение к ним указатель команд (регистр адреса команд) и регистр состояния (регистр флагов). Можно подразделить 12 регистров данных и адресов на три группы по четыре регистра, а именно на регистры данных, регистры указателей и индексов и индексов и регистры сегментов.

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

1. Регистровая адресация.

2. Непосредственная адресация.

3. Прямая адресация.

4. Косвенная регистровая адресация.

5. Адресация по базе.

6. Прямая адресация с индексированием.

7. Адресация по базе с индексированием.

Микропроцессор выбирает один из семи режимов адресации по значению поля режима команды. Ассемблер присваивает то или иное значение полю режима в зависимости от того, какой вид имеют операнды в исходной программе. Например, если Вы написали

MOV AX , BX

то Ассемблер закодирует оба операнда (AX и BX) для регистров адресации. Однако если Вы заключили операнд-источник в квадратные скобки:

MOV AX , [ BX ]

то Ассемблер закодирует операнд-источник для косвенной регистровой адресации.

Режимы адресации микропроцессора.

Режим адресации Формат операнда Регистр сегмента
регистровый регистр Не используется
непосредственный данное Не используется
прямой Сдвиг Метка DS DS
Косвенный регистровый [BX] [BP] [DI] [SI] DS SS DS DS
По базе [BX]+ сдвиг [BP]+ сдвиг DS CS
Прямой с индексированием [DI]+ сдвиг [SI]+ сдвиг DS DS
По базе с индексированием [BX][SI]+сдвиг [BX][DI]+ сдвиг [BP][SI]+ сдвиг [BP][DI]+ сдвиг DS DS SS SS

 

В таблице приведены форматы операндов языка Ассемблер для всех семи режимов адресации, реализуемых процессором, и для каждого формата указано, какой из регистров сегмента используется для вычисления физиологического адреса. Обратите внимание, что во всех режимах предполагается доступ к сегменту данных ( т.е. регистром сегмента служит регистр DS), и только в тех случаях, когда используется регистр BP, предполагается доступ к сегменту стека (т.е. регистром сегмента служит регистр SS).

 

Режимы адресации памяти.

название Краткое описание
Исполнительный адрес Смещение, которое вычисляется операционным блоком для доступа к находящемуся в памяти операнду. Исполнительный адрес показывает, на каком расстоянии (в байтах) располагается операнд от начала сегмента, в котором он находится.
Прямая адресация Исполнительный адрес является составной часть команды. Микропроцессор добавляет этот исполнительный адрес к сдвинутому содержимому регистра сегмента данных DS и получает 20-битовой физический адрес операнда.
Косвенная регистровая адресация Исполнительный адрес операнда содержится в базовом регистре ВХ, регистре указателя базы ВР или индексном регистре (SI или DI). Косвенные регистровые операнды надо заключать в квадратные скобки, чтобы отличить их от регистровых операндов.
Адресация по базе Ассемблер вычисляет исполнительный адрес с помощью сложения значения сдвига с содержимым регистров ВХ или ВР.
Прямая адресация с индексированием Исполнительный адрес вычисляется как сумма значений сдвига и индексирования регистра (DI или DS). Этот тип адресации удобен для доступа к элементам таблицы, когда сдвиг указывает на начало таблицы, а индексный регистр – на ее элемент.
Адресация по базе с индексированием Исполнительный адрес вычисляется как сумма значений базового регистра, индексного регистра и, возможно, сдвига.

 



©2015- 2017 stydopedia.ru Все материалы защищены законодательством РФ.