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)