Перейти к содержанию
    

fmul, fmuls...

В мегах есть команды, которые после умножения сдвигают результат влево. Фича полезная для дробных вычислений с фиксированной точкой, но обычно прихрдится иметь дело с как минимум двухбайтовыми данными. Можно ли эти команды приспособить для умножения двухбайтовых чисел?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ты наверное ищешь Это:

;**********************************************************************
********
;*
;* 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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ты наверное ищешь Это:

Да, точняк!

 

Более подробную информацию можно прочитать в Application Note AVR201: Using the AVR® Hardware Multiplier

По аппнотам лазил, а эта как-то прошла мимо :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...