Косвенная адресация данных в процессорах TMS320С54х

При косвенной адресации к любой ячейке, расположенной в 64К-словном пространстве данных, можно обращаться, используя 16-битный адрес, содержащийся во вспомогательном регистре. C54x DSP имеет восемь 16-битных вспомогательных регистратора (AR0-AR7). Косвенная адресация используется главным образом, когда есть необходимость перебирать последовательно расположенные в памяти ячейки с постоянным шагом.

Когда память адресуется с использованием косвенной адресации, вспомогательный регистр и адрес может быть произвольно изменен уменьшением, увеличением, смещением или индексом. Специальные режимы реализуют циклическую и двоично-инверсную адресацию. При циклической адресации используется регистр размера циклического буфера (BK). Регистр AR0 используется для индексной и двоично-инверсной адресации в дополнение к использованию в качестве указателя ячейки памяти, как и другие вспомогательные регистры.

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

На рис. 4.1 показан формат команды с косвенной адресацией для одного операнда памяти данных (Smem), а в табл. 4.1 – описание битов команды.

Адресация двойного операнда памяти данных используется для команд, которые выполняют два чтения или одно чтение и параллельную запись в память (обозначенные двумя вертикальными линиями ||) одновременно. Эти команды - все длиной в одно слово и работают только с косвенным способом адресации. Два операнда памяти данных обозначаются Xmem и Ymem:

• Xmem - операнд чтения с доступом через шину D. Команды сохранения, например STH и STL, используют Xmem как операнд записи.

• Ymem используется как операнд чтения в командах с двойным чтением (обращение через шину C) или как операнд записи в командах с параллельной записью (обращение через шину E).

Если операнд источника и адресата совпадают, в командах с параллельной записью (например, ST||LD), источник читается перед записью адресата. Если команда двойного операнда н(апример, ADD) указывает на один вспомогательный регистр с различными способами адресации, для адресации используется режим, определенный полем Xmod.

На рис. 4.2 показан формат команды с косвенной адресацией для двух операндов памяти данных. В табл. 4.2 описаны биты команды.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: