Re: A86: comparing strings
[Prev][Next][Index][Thread]
Re: A86: comparing strings
This first one is pretty close to what I thought to use. Thanks.
Robert Niedziela wrote:
> There are two procedures to compare strings: first tests if strings are
> equal, second tests, which is "greater"
>
> ;---------------------------------------------------------------------------
>
> ;Compare strings with addresses given in HL and DE
> ;Returns: A=1 if strings equal, otherwise 0
> IS_DE_HL_STR_EQ:
> push de
> push hl
> push bc
> IDHSE_Loop:
> ld a, (de)
> cp (hl)
> jr nz, IDHSE_Not
> inc de
> inc hl
> djnz IDHSE_Loop
> ld a, 1 ;equal
> jr IDHSE_End
> IDHSE_Not:
> xor a ;not equal
> IDHSE_End:
> pop bc
> pop hl
> pop de
> ret
>
> ;---------------------------------------------------------------------------
>
> ;is string with addr in DE is greater than string with addr in HL ?
> ;If greater then A=1, otherwise A=0
> IS_DE_GR_HL_STR:
> ld a, (de)
> cp (hl)
> jr nz, IDGHS_Test
> inc de
> inc hl
> djnz IS_DE_GR_HL_STR
> jr IDGHS_Not
> IDGHS_Test:
> jr c, IDGHS_Not
> ld a, 1
> ret
> IDGHS_Not:
> xor a
> ret
References: