Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Адресация данных в процессоре

Читайте также:
  1. II. 12-24. Причина страданий преданных
  2. II. Ввод и редактирование данных
  3. III. Адресация в Интернете.
  4. V. Форматирование данных
  5. X. Оператора манипулирования данными. Вставка данных
  6. Адресация в IP
  7. Адресация в IP-сетях

 

8.1. Прямая и непосредственная адресация

 

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

 

Операнды могут указываться:

· Адресом (номером) ячейки памяти данных, в которой хранится операнд,

· Именем регистра процессора, в котором находится операнд,

· Константой, хранящейся в слове команды.

 

Существует три типа адресации:

· Прямая,

· Косвенная,

· Непосредственная.

 

Адресацию называют прямой, если в команде указывается:

 

1. Исполняемый адрес, т.е. адрес – адрес ячейки памяти данных.

 

Пример: AX1 = DM(0x1001) - команда пересылки процессора ADSP-21xx из памяти данных (DM) по адресу 0x1001 в регистр АЛУ AX1.

 

0x1001 - 0001 0000 0000 0001.

 

2. Адрес операнда на странице памяти данных, по которому автоматически вычисляется исполняемый адрес.

 

Разбиение памяти данных на страницы

 

Адрес операнда в памяти данных
Адрес страницы Адрес операнда в пределах страницы
..... 000001 (Страница 0) ...... (Адреса 0..63)
..... 000001 (Страница 1) ...... (Адреса 0..63)
  .....   ......
..... 000001 (Страница 15) ...... (Адреса 0..63)

 

3. Имя регистра, из которого считывается, или в который записывается операнд.

В рассмотренных примерах операнды в слове команды названы именами регистров процессоров (AX1, R7).

 

При непосредственной адресации операнд указывается в команде константой.

Примеры:

1. AX0 = 0x0011 - команда пересылки процессоров ADSP – 21xx,

2. ADDI 100Ah, R1 - команда сложения содержимого регистра R1 с константой 410510 и записью результата в регистр R1 в процессорах TMS320C3x.

 

8.2. Косвенная адресация

 

Адресация называется косвенной, если исполняемый адрес хранится в специальном регистре, называемом регистром адреса. Косвенная адресация поддерживается всеми сигнальными процессорами.

Для определения исполняемого адреса при косвенной адресации требуется выполнение арифметических операций. Для их реализации используются специальные узлы – генераторы адресов данных. Например, процессоры семейства ADSP-21xx имеют два генератора адресов данных: DAG1 и DAG2 (Date Address Generator), а в процессорах TMS320C3xxx используются два арифметических устройства вспомогательных регистров ARAU (Auxiliary Register Arithmetic Unit).

При косвенной адресации предусматривается возможность наряду с определением исполняемого адреса его модификация.

 

Существуют следующие виды модификации:

 

· Преинкремент - увеличение до выполнения команды содержимого регистра адреса на смещение M

· Предекремент - уменьшение до выполнения команды содержимого регистра адреса на M;

*- ARn(M), *- - ARn(M)

· Постинкремент – увеличение после выполнения команды содержимого регистра адреса на M

· Постдекремент – уменьшение после выполнения команды содержимого регистра адреса на M

* ARn --(M)

Во всех приведенных вариантах косвенной адресации в скобках вместо константы M можно указывать индексные регистры IR0 и IR1. Тогда во всех операциях вместо M будет использоваться их содержимое.

Значение M=1 используется в приведенных командах по умолчанию и в команде вместе со скобками не указывается.

 

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

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

Каждый DAG включает три набора регистров:

* регистры модификации M,

* индексные регистры I,

* регистры длины L.

Каждый набор содержит четыре 14-битных регистра, которые могут быть считаны или записаны по шине данных памяти данных DMD.

Индексные регистры I0..I3 в DAG1 и I4..I7 в DAG2 содержат реальные адреса, по которым производится доступ к памяти.

Генераторы адресов данных используют схему постмодификации: после косвенной адресации данных к содержимому определенного I - регистра добавляется содержимое M - регистра (M0..M3 в DAG1 и M4..M7 в DAG2) для генерации измененного значения индексного регистра. Значения модификации, записанные в M - регистрах, знаковые, поэтому следующий адрес может быть как больше, так и меньше текущего.

Для линейной адресации в соответствующий L - регистр записывается ноль.

Команда пересылки, в которой используется косвенная адресация

AX0 = DM(I2,M2).

 

Адресация по модулю

Если, например, начальное значение I=0, а L=5, M=1, получим следующий ряд:

0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0.

Если начальное значение I=4, L=5, M=-1, получим

4, 3, 2, 1, 0, 4, 3, 2, 1, 0.

 

 


Дата добавления: 2015-07-08; просмотров: 344 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Классы IP-адресов| г. Харьков

mybiblioteka.su - 2015-2024 год. (0.009 сек.)