реклама на сайте
подробности

 
 
> Умножение 32 на code vision, проблема
Botadeus
сообщение May 3 2007, 14:22
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 22-04-07
Пользователь №: 27 233



необходимо осуществить 32 разрядное умножение, переменную создаю типа long, пишу на си что то типа
long temp;
int f[64];
flash int CAS[64][18]; // zabiti vse znacheniya vruchnuu - konstanta
temp = f[v]*CAS[v][t];

вообщем результат этой операции неверный, (распечатываю printf())
если даже что-то с распечаткой, то результат вычисления с огромной ошибкой,
написал тоже на билдере всё нормально считается.
прогу писал для mega 128
смотрел код который генерируется на асемблере, при вызове 3 раза вызов mul, тоесть по идеи всё правильно, только вот результат куда то девается либо вообще не знаю.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Guest_=AVR=_*
сообщение May 6 2007, 18:55
Сообщение #2





Guests






А вот она, например:

Код
;--------------------------------------------------------------------
; Unsigned 16x16=32 multiply, r9:r8:r7:r6 = r4:r3 * r17:r16
; 14 program words, 17 clocks + ret
mulu16x16:
        clr     r2

        mul     r4,r17
        movw    r8,r0
        mul     r3,r16
        movw    r6,r0
        mul     r4,r16
        add     r7,r0
        adc     r8,r1
        adc     r9,r2
        mul     r3,r17
        add     r7,r0
        adc     r8,r1
        adc     r9,r2

        ret
;--------------------------------------------------------------------


Сообщение отредактировал =AVR= - May 6 2007, 18:57
Go to the top of the page
 
+Quote Post
Botadeus
сообщение May 7 2007, 17:49
Сообщение #3





Группа: Новичок
Сообщений: 5
Регистрация: 22-04-07
Пользователь №: 27 233



Спасибо всем smile.gif
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 01:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01415 секунд с 7
ELECTRONIX ©2004-2016