DEAR TO ALL, I AM DEALING WITH C8051F120 MICROCONTROLLER.UTILIZING 16 X 16 MAC ENGINE OPERATION.I AM DOING ASSEMBLY LANGUAGE PROGRAMMING USING THIS MICROCONTROLLER FOR MULTIPLICATION. IS IT POSSIBLE TO MULTIPLY TWO UNSIGNED 16 BIT INPUTS? IF YES, THEN HOW ?
DO YOU KNOW ,WITH MAC ENGINE WITHIN TWO SYSTEM CYCLE WE WILL GET ANSWER
Well, the datasheet for the device clearly states that the MAC engine does 16x16 signed integer multiplications (which is quite usual for MAC units, since signed/signed is the multiplication type usually used in DSP applications).
There's no way of getting a 16x16 unsigned/unsigned result out of the MAC engine in just two cycles, if it's supposed to be accurate. You'll have to break the multiplication up into several parts, or use the 8051's MUL command. I don't know from the top of my head which one is faster, but I guess it's going to be the former.