Студопедия
Случайная страница | ТОМ-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-2023 год. (0.014 сек.)