asm help

Started by
1 comment, last by vbisme 22 years, 6 months ago
when multiplying a binary number by (-1), in other word changing the sign the technique is NOT the number then ADD 1 to it. Why is ADD 1 needed to complete the process?
Advertisement
That''s due to the way that signed numbers are stored. You probably know that unsigned chars are like this:

128 | 64 | 32 | 16 | 8 | 4 | 2 | 1

Signed chars are stored like this:

-128 | 64 | 32 | 16 | 8 | 4 | 2 | 1


Now, if I have 35, (32 + 2 + 1), if I NOT it I get (-128 + 64 + 16 + 8 + 4), but that''s only -36. To get -35, I have to add 1. So that''s why you need to add 1. The process is called the "two''s complement".

But wasn''t there an opcode to do that automatically?
Yes, there is/was:

try NEG... and you''re probably saving some cycles...



- www.sunage-the-game.com - - www.vertex4.com - Sauk says, 'Loading is fun...'

This topic is closed to new replies.

Advertisement