summaryrefslogtreecommitdiff
path: root/device/lib/stm8-large/_strcmp.lst
blob: 8ce48249915e96223a7396a412d9e73c8a5231cb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
                                      1 ;--------------------------------------------------------
                                      2 ; File Created by SDCC : free open source ANSI-C Compiler
                                      3 ; Version 3.9.3 #11345 (Linux)
                                      4 ;--------------------------------------------------------
                                      5 	.module _strcmp
                                      6 	.optsdcc -mstm8
                                      7 	
                                      8 ;--------------------------------------------------------
                                      9 ; Public variables in this module
                                     10 ;--------------------------------------------------------
                                     11 	.globl _strcmp
                                     12 ;--------------------------------------------------------
                                     13 ; ram data
                                     14 ;--------------------------------------------------------
                                     15 	.area DATA
                                     16 ;--------------------------------------------------------
                                     17 ; ram data
                                     18 ;--------------------------------------------------------
                                     19 	.area INITIALIZED
                                     20 ;--------------------------------------------------------
                                     21 ; absolute external ram data
                                     22 ;--------------------------------------------------------
                                     23 	.area DABS (ABS)
                                     24 
                                     25 ; default segment ordering for linker
                                     26 	.area HOME
                                     27 	.area GSINIT
                                     28 	.area GSFINAL
                                     29 	.area CONST
                                     30 	.area INITIALIZER
                                     31 	.area CODE
                                     32 
                                     33 ;--------------------------------------------------------
                                     34 ; global & static initialisations
                                     35 ;--------------------------------------------------------
                                     36 	.area HOME
                                     37 	.area GSINIT
                                     38 	.area GSFINAL
                                     39 	.area GSINIT
                                     40 ;--------------------------------------------------------
                                     41 ; Home
                                     42 ;--------------------------------------------------------
                                     43 	.area HOME
                                     44 	.area HOME
                                     45 ;--------------------------------------------------------
                                     46 ; code
                                     47 ;--------------------------------------------------------
                                     48 	.area CODE
                                     49 ;	../_strcmp.c: 34: int strcmp ( const char * asrc, const char * adst )
                                     50 ;	-----------------------------------------
                                     51 ;	 function strcmp
                                     52 ;	-----------------------------------------
      000000                         53 _strcmp:
      000000 52 08            [ 2]   54 	sub	sp, #8
                                     55 ;	../_strcmp.c: 40: const char * src = asrc;
      000002 16 0C            [ 2]   56 	ldw	y, (0x0c, sp)
      000004 17 01            [ 2]   57 	ldw	(0x01, sp), y
                                     58 ;	../_strcmp.c: 41: const char * dst = adst;
      000006 16 0E            [ 2]   59 	ldw	y, (0x0e, sp)
      000008 17 03            [ 2]   60 	ldw	(0x03, sp), y
                                     61 ;	../_strcmp.c: 43: while( ! (*src - *dst) && *dst)
      00000A                         62 00102$:
      00000A 1E 01            [ 2]   63 	ldw	x, (0x01, sp)
      00000C F6               [ 1]   64 	ld	a, (x)
      00000D 5F               [ 1]   65 	clrw	x
      00000E 97               [ 1]   66 	ld	xl, a
      00000F 16 03            [ 2]   67 	ldw	y, (0x03, sp)
      000011 90 F6            [ 1]   68 	ld	a, (y)
      000013 6B 06            [ 1]   69 	ld	(0x06, sp), a
      000015 0F 05            [ 1]   70 	clr	(0x05, sp)
      000017 72 F0 05         [ 2]   71 	subw	x, (0x05, sp)
      00001A 1F 07            [ 2]   72 	ldw	(0x07, sp), x
      00001C 26 11            [ 1]   73 	jrne	00104$
      00001E 4D               [ 1]   74 	tnz	a
      00001F 27 0E            [ 1]   75 	jreq	00104$
                                     76 ;	../_strcmp.c: 44: ++src, ++dst;
      000021 1E 01            [ 2]   77 	ldw	x, (0x01, sp)
      000023 5C               [ 1]   78 	incw	x
      000024 1F 07            [ 2]   79 	ldw	(0x07, sp), x
      000026 1F 01            [ 2]   80 	ldw	(0x01, sp), x
      000028 1E 03            [ 2]   81 	ldw	x, (0x03, sp)
      00002A 5C               [ 1]   82 	incw	x
      00002B 1F 03            [ 2]   83 	ldw	(0x03, sp), x
      00002D 20 DB            [ 2]   84 	jra	00102$
      00002F                         85 00104$:
                                     86 ;	../_strcmp.c: 46: return *src - *dst;
      00002F 1E 07            [ 2]   87 	ldw	x, (0x07, sp)
                                     88 ;	../_strcmp.c: 55: }
      000031 5B 08            [ 2]   89 	addw	sp, #8
      000033 87               [ 5]   90 	retf
                                     91 	.area CODE
                                     92 	.area CONST
                                     93 	.area INITIALIZER
                                     94 	.area CABS (ABS)