The following diagram describes an implementation of the mul
The following diagram describes an implementation of the multiplication of two 32-bit unsigned integers. These two integer inputs are stored respectively, in register A and register B. The result is temporarily stored in register C, which should be large enough to capture all the bits that result from the multiplication. In terms of the number of bits, what are the size requirements of registers A, B and C? Why? You may use the table below to organize your answer. If the result of the multiplication is to be casted back to a 32-bit unsigned integer, how to detect overflow\' based on the value stored in register C? Explain.
Solution
a.
b.
the two 32 bit integers may be multiplied to produce a 64 bit product in two 32 bit words, HI and LO, which hold the most and least significant 32 bits of the product, respectively.
or else we can use the umull instruction to detect the overflow.
| component | size | explanation |
| Register A | 32 | as 32 bit input is given ,it requires 32 bit |
| Register B | 32 | as 32 bit input is given ,it requires 32 bit |
| Register C | 64 | the product of two n unsigned register requires 2n bit register.so it is 64bit |
