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

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

Отправлено ВН 20 мая 2003 г. 15:44
В ответ на: Подскажите пожалуйст: деление 32/16 на 54xx - а то встроенная в С 700 тактов жрет ... отправлено Желающий поделить 20 мая 2003 г. 03:56

Если нигде не опишусь.
C:
extern unsigned long div3216(unsigned long dividend,unsigned short divisor);
void main()
{
unsigned long l;
l=div3216(0xffffffffL,2); //l=0x7fffffff
}
ASM:
.global _div3216
.asg (0), dividendl
.asg (1), dividendh
.asg (2), resultl
.asg (3), resulth
.asg (4), reminder
.asg (5), ret_addr
.asg (6), divisor
_div3216:
FRAME -5
NOP
RSBX SXM
STL A,*SP(dividendl)
STH A,*SP(dividendh)
LDU *SP(dividendh),A
RPT #15
SUBC *SP(divisor),A
STL A,*SP(resulth)
STH A,*SP(reminder)
LD *SP(reminder),16,A
OR *SP(dividendl),A
RPT #15
SUBC *SP(divisor),A
STL A,*SP(resultl)
LD *SP(resulth),16,A
OR *SP(resultl),A
FRAME 5
RET
Вроде бы не 700 циклов.

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru