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

 
 
 
Reply to this topicStart new topic
> fmul, fmuls..., как использовать?
777777
сообщение Jul 6 2011, 17:54
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



В мегах есть команды, которые после умножения сдвигают результат влево. Фича полезная для дробных вычислений с фиксированной точкой, но обычно прихрдится иметь дело с как минимум двухбайтовыми данными. Можно ли эти команды приспособить для умножения двухбайтовых чисел?
Go to the top of the page
 
+Quote Post
alexeyv
сообщение Jul 7 2011, 04:22
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 298
Регистрация: 26-01-09
Из: Пермь
Пользователь №: 43 940



Ты наверное ищешь Это:
CODE
;**********************************************************************
********
;*
;* FUNCTION
;* fmuls16x16_32
;* DECRIPTION
;* Signed fractional multiply of two 16bits numbers with 32bits result.
;* USAGE
;* r19:r18:r17:r16 = ( r23:r22 * r21:r20 ) << 1
;* STATISTICS
;* Cycles : 20 + ret
;* Words : 16 + ret
;* Register usage: r0 to r2 and r16 to r23 (11 registers)
;* NOTE
;* The routine is non-destructive to the operands.
;*
;******************************************************************************

fmuls16x16_32:
clr r2
fmuls r23, r21 ; ( (signed)ah * (signed)bh ) << 1
movw r19:r18, r1:r0
fmul r22, r20 ; ( al * bl ) << 1
adc r18, r2
movw r17:r16, r1:r0
fmulsu r23, r20 ; ( (signed)ah * bl ) << 1
sbc r19, r2
add r17, r0
adc r18, r1
adc r19, r2
fmulsu r21, r22 ; ( (signed)bh * al ) << 1
sbc r19, r2
add r17, r0
adc r18, r1
adc r19, r2
ret


Более подробную информацию можно прочитать в Application Note AVR201: Using the AVR® Hardware Multiplier
Go to the top of the page
 
+Quote Post
777777
сообщение Jul 7 2011, 08:59
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(alexeyv @ Jul 7 2011, 08:22) *
Ты наверное ищешь Это:

Да, точняк!

Цитата(alexeyv @ Jul 7 2011, 08:22) *
Более подробную информацию можно прочитать в Application Note AVR201: Using the AVR® Hardware Multiplier

По аппнотам лазил, а эта как-то прошла мимо sad.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 10:12
Рейтинг@Mail.ru


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