Why is happening this? How can I detect overflow in such operations?I'm using the gnuarm compiler, and working with 32-bit registers.