s3e: fix build break
[calu.git] / 1_isacmp / 8051.s
1 ;clears (sum)
2 mov r4, #0x00
3 mov r5, #0x00
4 ;i (sum)
5 mov r0, #0x00
6 mov r1, #0x00
7 ;save away len
8 mov _sum_len_1_1, dpl
9 mov (_sum_len_1_1 +1), dph
10 ;load datapointer with adress of array
11 mov dpl, _sum_PARM_2
12 mov dph, (_sum_PARM_2+1)
13
14 0001$:
15         ; check the for condition
16         clr C ; clear carry
17         mov A, r0
18         subb A, _sum_len_1_1
19         mov A ,r1
20         xrl A ,#0x80
21         mov B, (_sum_len_1_1+1)
22         xrl B, #0x80
23         subb A,B
24         ;jump to exit
25         jnc 0002$
26         ;fetch the array element and add
27         movx A, @DPTR
28         inc DPTR
29         add A, r4
30         mov r4, A
31         movx A, @DPTR
32         addc A, r5
33         mov r5, A
34         inc DPTR
35         ;increment loop counter and jump
36         inc r0
37         cjne r0, #0x00, 0001$
38         inc r1
39         sjmp 0001$
40
41 0002$:
42 ; prepare return values
43 mov dpl, r4
44 mov dph, r5
45 ret