view lib/alib/strncmp.a @ 2782:aaba193af04f lwtools-port

Updated code to use lwasm/lwlink
author Boisy Pitre <boisy.pitre@nuance.com>
date Sat, 26 Jan 2013 08:26:31 -0600
parents 7d70b7e1cb21
children
line wrap: on
line source

*************************************

* STRNCMP: compare 2 null terminated strings
*          maximum number of bytes to compare in D
*
* OTHER MODULES NEEDED: COMPARE

* ENTRY: X=start of 1st string
*        Y=start of 2nd string
*        D=number of bytes to compare
*        CASEMTCH:(a global variable in COMPARE)
*                 0=match for case
*                -1=ignore case differences

* EXIT: CC zero set  if equal (beq)
*          carry + zero clear if 1>2 (bhi)
*          carry set if 1<2 (blo)

 nam Compare 2 Strings
 ttl Assembler Library Module


 section .text


STRNCMP:
 pshs d,x,y,u

 tfr y,u U=string2
 tfr d,y use Y for counter
 leay 1,y comp for initial dec.

loop
 leay -1,y count down
 beq exit no miss-matches
 lda ,x+ get 2 to compare
 ldb ,u+
 lbsr COMPARE go compare chars.
 beq loop chars match, do more

* exit with flags set. Do a beq, bhi or blo to correct
* routines....

exit
 puls d,x,y,u,pc

 endsect