A83: Re: Ld


[Prev][Next][Index][Thread]

A83: Re: Ld





----- Original Message -----
From: Marc Puts <marcputs@hetnet.nl>

> I use the following code. It seems like it's working,
> but there's one thing that I'm not sure about:
>
>   call _rclX
>   call _convop1
>   ex de,hl
>   ld a,hl
>
>   ...
>
>   cp 1

Here is an example of how the 16 bit registers work
-----------

hl is a 16 bit number, which means that it is an integer from 0-65535
a is an 8 bit number, which means that it is an integer from 0-255

...but HL is actually a combination of two 8 bit registers,
with H being the high bit and L being the low bit.

this means the following

if hl = 42

h=0
l=42

if hl = 255
h=0
l=255

if hl = 256
h=1
l=0

--------------

if you want to compare the FULL 16 bit register to a number then i suggest
you use the following rom call.

 call _rclX
 call _convop1
 ld hl,1          ; we dont need to do ex de,hl... that would waste space,
since we are checking equality
 call _cphlde     ; 16 bit compare of hl to de


 i hope it helps

-harper



Follow-Ups: References: