[an error occurred while processing this directive]
Почему алгебраический ассемблер(+)
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Zizo 27 апреля 2005 г. 11:56
В ответ на: Да, спасибо. Что-то к концу дня отупел %) А вам как удобнее на мнемонике или на алгебраическом? отправлено 2b|!2b?.. 26 апреля 2005 г. 11:26

Мне удобнее на алгебраическом. На мой взгляд "читабельность" кода существенно выше используя эту Си подобную мнемонику. Зная архитектуру процессора я все равно знаю, какая инструкция там скрывается, а ее название не так уж важно. Понятнее и удобнее писать
X = Y
вместо LD, LDM, ST, STL, MVDD, MVDK, MVMM и так далее.
Позволяет не отвлекаться на расшифровку всей этой абракадабры и заняться собственно алгоритмом, его, в случае алгебраического, намного лучше в коде видно. Например
repeatblock($3-1)
B = (*AR2+)*(*AR3)
B -= *AR2 << 15
B += A << ASM
*AR2 = hi(B) << 1
$3:
или
RPTB $3-1
MPY *AR2+, *AR3, B
SUB *AR2, 15, B
ADD A, ASM, B
STH B, 1, *AR2
$3:
Инженер с большим опытом работы на ассемблере, на этапе освоения процессора, конечно предпочтет второй вариант. Но на мой взгляд, именно структуру алгоритма лучше видно в первом варианте. Код в алгебраическом виде я передавал инженерам, которые вообще не знают никакого ассемблера, но сильны в обработке сигналов и программировании на Си, и затруднений в его "расшифровке" у них не возникало. Во втором варианте им бы пришлось осваивать систему команд С54. Причем в этом примере не использованы такие "экзотические" команды типа MPYA, SQURS, SACCD и т.п., которые специфичны для DSP и конкретно для С54, в тоже время записи типа
B = hi(A)*(*AR2+)
A -= square(*AR3)
if(AEQ) *AR4 = hi(A) << ASM
выглядят достаточно понятно для любого инженера.
Вообще конечно на вкус и на цвет, как известно, товарища нет.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru