Why are signed and unsigned multiplication different instructions on x86(-64)?
Addition and subtraction are the same, as is the low-half of a multiply. A full multiply, however, is not. Simple example: In 32-bit twos-complement, -1 has the same representation as the unsigned quantity 2**32 – 1. However: -1 * -1 = +1 (2**32 – 1) * (2**32 – 1) = (2**64 – 2**33 + 1) … Read more