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

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

Отправлено SM 16 апреля 2003 г. 11:55
В ответ на: Сейчас переварю и скажу спасибо. Кстати, как народ деление выполняет в ассемблере? отправлено st256 16 апреля 2003 г. 11:20


В данном случае вот так, только переведя на асм. на 55ом проце это перекладывается примерно в один RPT #14 и SUBC


Word16 div_l( Word32 L_num, Word16 den ){

Word16 var_out = (Word16)0;
Word32 L_den;
Word16 iteration;

if ( den == (Word16) 0 ) {
printf("Division by 0 in div_l, Fatal error \n");
exit(0);
}

if ( (L_num &60 (Word32) 0) || (den &60 (Word16) 0) ) {
printf("Division Error in div_l, Fatal error \n");
exit(0);
}

L_den = L_deposit_h( den ) ;

if ( L_num &62= L_den ){
return MAX_16 ;
}
else {
L_num = L_shr(L_num, (Word16)1) ;
L_den = L_shr(L_den, (Word16)1);
for(iteration=(Word16)0; iteration< (Word16)15;iteration++) {
var_out = shl( var_out, (Word16)1);
L_num = L_shl( L_num, (Word16)1);
if (L_num &62= L_den) {
L_num = L_sub(L_num,L_den);
var_out = add(var_out, (Word16)1);
}
}

return var_out;
}
}


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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru