Question

Using Atmel Studio Assembler, Write a subroutine to multiply two unsigned 16-bit integers 0x3732 and 0x4148...

Using Atmel Studio Assembler, Write a subroutine to multiply two unsigned 16-bit integers 0x3732 and 0x4148 passed in r16:r17 and r18:r19, and return the product in r22, r23, r24, and r25. r17 and r19 hold the upper bytes of two numbers to be multiplied, and r25 down to r22 hold the most significant to the least significant bytes of the product.

0 0
Add a comment Improve this question Transcribed image text
Answer #1

ANSWER :

;* DESCRIPTION
;*Signed fractional multiply of two 16-bit numbers with 32-bit result.
;* USAGE
;*r19:r18:r17:r16 = ( r23:r22 * r21:r20 ) << 1
 ;******************************************************************************
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
Add a comment
Know the answer?
Add Answer to:
Using Atmel Studio Assembler, Write a subroutine to multiply two unsigned 16-bit integers 0x3732 and 0x4148...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT