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

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

Отправлено Немного Озадаченный 10 октября 2002 г. 20:22
В ответ на: Ответ: отправлено ВН 10 октября 2002 г. 18:05

значение в аккумуляторе сформировалось не посредством загрузки из памяти - иначе бы конечно оно было бы расширено по всем правилам
а вычислялось вот что:
; s1=datao8[k]<<16;
; s1+=(d[0]*c[0] + d[1]*c[1])<<2;
; s2= (d[0]*c[3] + d[1]*c[2] + ((s1>>16)*c[4]));
; d[1]=d[0];
; d[0]=s1>>16;

Посему такое вот вычисление
mpy *AR5+,*AR4+,b ; b =d[0]*c[0] ;AR4=&c[1];AR5=&d[1]
mac *AR5,*AR4+,b ; b +=d[1]*c[1] ;AR4=&c[2]
sfta b,2,b ; b=b<<2
add *AR2+,16,b,a ; a=b+datao8[k]<<16
mpy *AR5-,*AR4+,b ; b =s2=d[1]*c[2] ;AR5=&d[0];AR4=&c[3]
ltd *AR5 ; T=d[0];d[1]=d[0];
mac *AR4+,b ; b+=d[0]*c[3] ;AR4=&c[4]
sfta a,-16,a
stlm a,T ; T=s1>>16
mac *AR4+,b ; b+=T*c[4];AR4=&c[5]
stl a,*AR5+ ; d[0]=s1>>16 ;AR5=&d[1]
mar *AR5+ ; AR5=&d[2] -

Может быть и неправильным! Да меня доложно было насторожить то что maca не хочет правильно работать. Потому как у меня получалось
a=0x00a3abxxxx - не помню что в младшей части. И вот это он понимал ка положительное число.

Вывод :) - надо ка мне все еще раз пересмотреть :)).
Спасибо за труды. и подсказку.

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru