hi, all,
I write a inline asm function,strCmp(char * s1, char *
substr,uint
len), mixed with c in CW, s1 is a ptr to the data of DB
record and
substr is local str ptr. I found the asm cannot work
due to the s1. is
there any data segment offset for DB? why in the asm
function, s1 cannot
get the right value?
Boolean asm strCmp(unsigned char *sj, unsigned char
*substr, UInt len)
{
fralloc+
//A1 = s + j
move.b #1, D0
move.l sj, A1
//A4 = substr
move.l substr, A2
move.w len, D1
@strncmp:
subi.w #1, D1
//check -1, the strings are equal
tst.w D1
bmi @success
cmp.b (A1)+, (A2)+
beq @strncmp
jmp @exit
@success:
move.l #0, D0
@exit:
frfree
rts
}
I use this to call it:
if(strCmp((unsigned char *)(s+j),
(unsigned char *)substr, len) == 0)
{
WinDrawChars("yeah", 4, 50, 30);
}
Thanks a lot!!!!
Eric
--
For information on using the ACCESS Developer Forums, or to unsubscribe, please
see http://www.access-company.com/developers/forums/