mc8051fun/long_xadd.c

33 lines
349 B
C
Raw Normal View History

2024-06-05 08:19:50 +02:00
2024-06-05 08:36:33 +02:00
/**
* Add two longs in xmem zero page
*
* r0 = ptr to firts arg
* r1 = ptr to second arg
* r7 = length
*
* result is in r0*
*/
2024-06-05 08:19:50 +02:00
void long_xadd() __naked
{
__asm
.globl long_xadd
.globl long_xaddc
long_xadd:
clr c
long_xaddc:
movx a,@r1
mov b,a
movx a,@r0
addc a,b
movx @r0,a
inc r0
inc r1
djnz r7,long_xaddc
ret
__endasm;
}