Two's Compliment
To represent negative numbers in binary, there is something
called the Two's Compliment. To make a
(containing
%00000101
or 5
) into a negative number,
you flip all the 1's to 0's and all the 0's to 1's
(%11111010
or 250
).
But that's not all, you have to add one to get the final -5
(%11111011
or 251
). The processor
adds 256
(%1 00000000
or $100
)
to a number to store it as a negative. You will have your
calculator's handy base conversion handy so you will only
have to understand the basics of this. You will learn a command
that does this for you with a
later on. Here's some code that
will make the number in a
negative.
xor %11111111 inc a
A command that you haven't learned about yet will do the flipping of
all the bits for you: cpl
.
It does the same thing as xor %11111111
with a
.
cpl inc a
There is yet another command that further simplifies this code by nagating
the number in a
for us:
neg
.
negThese are only neccessary at run-time (while the program is executing). Remember, though, that your assembler does support negative numbers. It will do all these calculations at assembly time.
ld de,-400 ld a,-24 ld hl,-12
More from z80 » Beginner
Aliases // Convert from decimal to hexadecimal or binary // Flags and Conditions // Format and Compiling // Instructions // Math // Number Bases // Oh, No! It Crashed! // Registers // TI-BASIC to Asm Comparisons // TI86 Specifications // Two's Compliment // z80 Processor