avr-lib-lcd/Release/avr-lib-lcd.lss
2017-09-25 23:32:42 +02:00

399 lines
14 KiB
Plaintext

avr-lib-lcd.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 0000000e 00800100 00000320 00000394 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 00000320 00000000 00000000 00000074 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .comment 00000011 00000000 00000000 000003a2 2**0
CONTENTS, READONLY
3 .note.gnu.avr.deviceinfo 00000040 00000000 00000000 000003b4 2**2
CONTENTS, READONLY
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 34 00 jmp 0x68 ; 0x68 <__ctors_end>
4: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
8: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
c: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
10: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
14: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
18: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
1c: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
20: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
24: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
28: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
2c: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
30: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
34: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
38: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
3c: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
40: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
44: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
48: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
4c: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
50: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
54: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
58: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
5c: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
60: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
64: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
00000068 <__ctors_end>:
68: 11 24 eor r1, r1
6a: 1f be out 0x3f, r1 ; 63
6c: cf ef ldi r28, 0xFF ; 255
6e: d4 e0 ldi r29, 0x04 ; 4
70: de bf out 0x3e, r29 ; 62
72: cd bf out 0x3d, r28 ; 61
00000074 <__do_copy_data>:
74: 11 e0 ldi r17, 0x01 ; 1
76: a0 e0 ldi r26, 0x00 ; 0
78: b1 e0 ldi r27, 0x01 ; 1
7a: e0 e2 ldi r30, 0x20 ; 32
7c: f3 e0 ldi r31, 0x03 ; 3
7e: 02 c0 rjmp .+4 ; 0x84 <__do_copy_data+0x10>
80: 05 90 lpm r0, Z+
82: 0d 92 st X+, r0
84: ae 30 cpi r26, 0x0E ; 14
86: b1 07 cpc r27, r17
88: d9 f7 brne .-10 ; 0x80 <__do_copy_data+0xc>
8a: 0e 94 74 01 call 0x2e8 ; 0x2e8 <main>
8e: 0c 94 8e 01 jmp 0x31c ; 0x31c <_exit>
00000092 <__bad_interrupt>:
92: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
00000096 <led_initPorts>:
96: 8a b1 in r24, 0x0a ; 10
98: 80 6e ori r24, 0xE0 ; 224
9a: 8a b9 out 0x0a, r24 ; 10
9c: 80 91 00 01 lds r24, 0x0100 ; 0x800100 <__data_start>
a0: 81 ff sbrs r24, 1
a2: 03 c0 rjmp .+6 ; 0xaa <led_initPorts+0x14>
a4: 8b b1 in r24, 0x0b ; 11
a6: 8f 71 andi r24, 0x1F ; 31
a8: 02 c0 rjmp .+4 ; 0xae <led_initPorts+0x18>
aa: 8b b1 in r24, 0x0b ; 11
ac: 80 6e ori r24, 0xE0 ; 224
ae: 8b b9 out 0x0b, r24 ; 11
b0: 08 95 ret
000000b2 <led_config>:
b2: 80 93 00 01 sts 0x0100, r24 ; 0x800100 <__data_start>
b6: 08 95 ret
000000b8 <led_init>:
b8: 0c 94 4b 00 jmp 0x96 ; 0x96 <led_initPorts>
000000bc <led_off>:
bc: 98 2f mov r25, r24
be: 80 91 00 01 lds r24, 0x0100 ; 0x800100 <__data_start>
c2: 4b b1 in r20, 0x0b ; 11
c4: 21 e0 ldi r18, 0x01 ; 1
c6: 30 e0 ldi r19, 0x00 ; 0
c8: b9 01 movw r22, r18
ca: 02 c0 rjmp .+4 ; 0xd0 <led_off+0x14>
cc: 66 0f add r22, r22
ce: 77 1f adc r23, r23
d0: 9a 95 dec r25
d2: e2 f7 brpl .-8 ; 0xcc <led_off+0x10>
d4: 81 ff sbrs r24, 1
d6: 04 c0 rjmp .+8 ; 0xe0 <led_off+0x24>
d8: cb 01 movw r24, r22
da: 80 95 com r24
dc: 84 23 and r24, r20
de: 02 c0 rjmp .+4 ; 0xe4 <led_off+0x28>
e0: cb 01 movw r24, r22
e2: 84 2b or r24, r20
e4: 8b b9 out 0x0b, r24 ; 11
e6: 08 95 ret
000000e8 <led_on>:
e8: 98 2f mov r25, r24
ea: 80 91 00 01 lds r24, 0x0100 ; 0x800100 <__data_start>
ee: 4b b1 in r20, 0x0b ; 11
f0: 21 e0 ldi r18, 0x01 ; 1
f2: 30 e0 ldi r19, 0x00 ; 0
f4: b9 01 movw r22, r18
f6: 02 c0 rjmp .+4 ; 0xfc <led_on+0x14>
f8: 66 0f add r22, r22
fa: 77 1f adc r23, r23
fc: 9a 95 dec r25
fe: e2 f7 brpl .-8 ; 0xf8 <led_on+0x10>
100: 81 ff sbrs r24, 1
102: 03 c0 rjmp .+6 ; 0x10a <led_on+0x22>
104: cb 01 movw r24, r22
106: 84 2b or r24, r20
108: 03 c0 rjmp .+6 ; 0x110 <led_on+0x28>
10a: cb 01 movw r24, r22
10c: 80 95 com r24
10e: 84 23 and r24, r20
110: 8b b9 out 0x0b, r24 ; 11
112: 08 95 ret
00000114 <led_flash>:
114: cf 93 push r28
116: c8 2f mov r28, r24
118: 0e 94 74 00 call 0xe8 ; 0xe8 <led_on>
11c: 8f e1 ldi r24, 0x1F ; 31
11e: 9e e4 ldi r25, 0x4E ; 78
120: 01 97 sbiw r24, 0x01 ; 1
122: f1 f7 brne .-4 ; 0x120 <led_flash+0xc>
124: 00 c0 rjmp .+0 ; 0x126 <led_flash+0x12>
126: 00 00 nop
128: 8c 2f mov r24, r28
12a: 0e 94 5e 00 call 0xbc ; 0xbc <led_off>
12e: 9f ef ldi r25, 0xFF ; 255
130: 2a e6 ldi r18, 0x6A ; 106
132: 83 e0 ldi r24, 0x03 ; 3
134: 91 50 subi r25, 0x01 ; 1
136: 20 40 sbci r18, 0x00 ; 0
138: 80 40 sbci r24, 0x00 ; 0
13a: e1 f7 brne .-8 ; 0x134 <led_flash+0x20>
13c: 00 c0 rjmp .+0 ; 0x13e <led_flash+0x2a>
13e: 00 00 nop
140: cf 91 pop r28
142: 08 95 ret
00000144 <led_disco>:
144: 85 e0 ldi r24, 0x05 ; 5
146: 0e 94 8a 00 call 0x114 ; 0x114 <led_flash>
14a: 86 e0 ldi r24, 0x06 ; 6
14c: 0e 94 8a 00 call 0x114 ; 0x114 <led_flash>
150: 87 e0 ldi r24, 0x07 ; 7
152: 0c 94 8a 00 jmp 0x114 ; 0x114 <led_flash>
00000156 <lcd_enable>:
156: 45 9a sbi 0x08, 5 ; 8
158: 85 e3 ldi r24, 0x35 ; 53
15a: 8a 95 dec r24
15c: f1 f7 brne .-4 ; 0x15a <lcd_enable+0x4>
15e: 00 00 nop
160: 45 98 cbi 0x08, 5 ; 8
162: 08 95 ret
00000164 <lcd_out>:
164: 98 b1 in r25, 0x08 ; 8
166: 90 7f andi r25, 0xF0 ; 240
168: 98 b9 out 0x08, r25 ; 8
16a: 98 b1 in r25, 0x08 ; 8
16c: 82 95 swap r24
16e: 8f 70 andi r24, 0x0F ; 15
170: 98 2b or r25, r24
172: 98 b9 out 0x08, r25 ; 8
174: 0c 94 ab 00 jmp 0x156 ; 0x156 <lcd_enable>
00000178 <lcd_data>:
178: cf 93 push r28
17a: c8 2f mov r28, r24
17c: 44 9a sbi 0x08, 4 ; 8
17e: 0e 94 b2 00 call 0x164 ; 0x164 <lcd_out>
182: 8c 2f mov r24, r28
184: 82 95 swap r24
186: 80 7f andi r24, 0xF0 ; 240
188: 0e 94 b2 00 call 0x164 ; 0x164 <lcd_out>
18c: 8a e7 ldi r24, 0x7A ; 122
18e: 8a 95 dec r24
190: f1 f7 brne .-4 ; 0x18e <lcd_data+0x16>
192: 00 c0 rjmp .+0 ; 0x194 <lcd_data+0x1c>
194: cf 91 pop r28
196: 08 95 ret
00000198 <lcd_command>:
198: cf 93 push r28
19a: c8 2f mov r28, r24
19c: 44 98 cbi 0x08, 4 ; 8
19e: 0e 94 b2 00 call 0x164 ; 0x164 <lcd_out>
1a2: 8c 2f mov r24, r28
1a4: 82 95 swap r24
1a6: 80 7f andi r24, 0xF0 ; 240
1a8: 0e 94 b2 00 call 0x164 ; 0x164 <lcd_out>
1ac: 80 e7 ldi r24, 0x70 ; 112
1ae: 8a 95 dec r24
1b0: f1 f7 brne .-4 ; 0x1ae <lcd_command+0x16>
1b2: cf 91 pop r28
1b4: 08 95 ret
000001b6 <lcd_clear>:
1b6: 81 e0 ldi r24, 0x01 ; 1
1b8: 0e 94 cc 00 call 0x198 ; 0x198 <lcd_command>
1bc: 8f e9 ldi r24, 0x9F ; 159
1be: 9f e0 ldi r25, 0x0F ; 15
1c0: 01 97 sbiw r24, 0x01 ; 1
1c2: f1 f7 brne .-4 ; 0x1c0 <lcd_clear+0xa>
1c4: 00 c0 rjmp .+0 ; 0x1c6 <lcd_clear+0x10>
1c6: 00 00 nop
1c8: 08 95 ret
000001ca <lcd_init>:
1ca: 87 b1 in r24, 0x07 ; 7
1cc: 8f 63 ori r24, 0x3F ; 63
1ce: 87 b9 out 0x07, r24 ; 7
1d0: 88 b1 in r24, 0x08 ; 8
1d2: 80 7c andi r24, 0xC0 ; 192
1d4: 88 b9 out 0x08, r24 ; 8
1d6: 8f e2 ldi r24, 0x2F ; 47
1d8: 95 e7 ldi r25, 0x75 ; 117
1da: 01 97 sbiw r24, 0x01 ; 1
1dc: f1 f7 brne .-4 ; 0x1da <lcd_init+0x10>
1de: 00 c0 rjmp .+0 ; 0x1e0 <lcd_init+0x16>
1e0: 00 00 nop
1e2: 80 e3 ldi r24, 0x30 ; 48
1e4: 0e 94 b2 00 call 0x164 ; 0x164 <lcd_out>
1e8: 8f e0 ldi r24, 0x0F ; 15
1ea: 97 e2 ldi r25, 0x27 ; 39
1ec: 01 97 sbiw r24, 0x01 ; 1
1ee: f1 f7 brne .-4 ; 0x1ec <lcd_init+0x22>
1f0: 00 c0 rjmp .+0 ; 0x1f2 <lcd_init+0x28>
1f2: 00 00 nop
1f4: 0e 94 ab 00 call 0x156 ; 0x156 <lcd_enable>
1f8: 8f ec ldi r24, 0xCF ; 207
1fa: 97 e0 ldi r25, 0x07 ; 7
1fc: 01 97 sbiw r24, 0x01 ; 1
1fe: f1 f7 brne .-4 ; 0x1fc <lcd_init+0x32>
200: 00 c0 rjmp .+0 ; 0x202 <lcd_init+0x38>
202: 00 00 nop
204: 0e 94 ab 00 call 0x156 ; 0x156 <lcd_enable>
208: 8f ec ldi r24, 0xCF ; 207
20a: 97 e0 ldi r25, 0x07 ; 7
20c: 01 97 sbiw r24, 0x01 ; 1
20e: f1 f7 brne .-4 ; 0x20c <lcd_init+0x42>
210: 00 c0 rjmp .+0 ; 0x212 <lcd_init+0x48>
212: 00 00 nop
214: 80 e2 ldi r24, 0x20 ; 32
216: 0e 94 b2 00 call 0x164 ; 0x164 <lcd_out>
21a: 8f e0 ldi r24, 0x0F ; 15
21c: 97 e2 ldi r25, 0x27 ; 39
21e: 01 97 sbiw r24, 0x01 ; 1
220: f1 f7 brne .-4 ; 0x21e <lcd_init+0x54>
222: 00 c0 rjmp .+0 ; 0x224 <lcd_init+0x5a>
224: 00 00 nop
226: 88 e2 ldi r24, 0x28 ; 40
228: 0e 94 cc 00 call 0x198 ; 0x198 <lcd_command>
22c: 8c e0 ldi r24, 0x0C ; 12
22e: 0e 94 cc 00 call 0x198 ; 0x198 <lcd_command>
232: 86 e0 ldi r24, 0x06 ; 6
234: 0e 94 cc 00 call 0x198 ; 0x198 <lcd_command>
238: 0c 94 db 00 jmp 0x1b6 ; 0x1b6 <lcd_clear>
0000023c <lcd_home>:
23c: 82 e0 ldi r24, 0x02 ; 2
23e: 0e 94 cc 00 call 0x198 ; 0x198 <lcd_command>
242: 8f e9 ldi r24, 0x9F ; 159
244: 9f e0 ldi r25, 0x0F ; 15
246: 01 97 sbiw r24, 0x01 ; 1
248: f1 f7 brne .-4 ; 0x246 <lcd_home+0xa>
24a: 00 c0 rjmp .+0 ; 0x24c <lcd_home+0x10>
24c: 00 00 nop
24e: 08 95 ret
00000250 <lcd_setcursor>:
250: 62 30 cpi r22, 0x02 ; 2
252: 59 f0 breq .+22 ; 0x26a <lcd_setcursor+0x1a>
254: 18 f4 brcc .+6 ; 0x25c <lcd_setcursor+0xc>
256: 61 30 cpi r22, 0x01 ; 1
258: 31 f0 breq .+12 ; 0x266 <lcd_setcursor+0x16>
25a: 08 95 ret
25c: 63 30 cpi r22, 0x03 ; 3
25e: 39 f0 breq .+14 ; 0x26e <lcd_setcursor+0x1e>
260: 64 30 cpi r22, 0x04 ; 4
262: 39 f0 breq .+14 ; 0x272 <lcd_setcursor+0x22>
264: 08 95 ret
266: 80 58 subi r24, 0x80 ; 128
268: 05 c0 rjmp .+10 ; 0x274 <lcd_setcursor+0x24>
26a: 80 54 subi r24, 0x40 ; 64
26c: 03 c0 rjmp .+6 ; 0x274 <lcd_setcursor+0x24>
26e: 80 57 subi r24, 0x70 ; 112
270: 01 c0 rjmp .+2 ; 0x274 <lcd_setcursor+0x24>
272: 80 53 subi r24, 0x30 ; 48
274: 0c 94 cc 00 jmp 0x198 ; 0x198 <lcd_command>
00000278 <lcd_string>:
278: cf 93 push r28
27a: df 93 push r29
27c: ec 01 movw r28, r24
27e: 89 91 ld r24, Y+
280: 88 23 and r24, r24
282: 19 f0 breq .+6 ; 0x28a <lcd_string+0x12>
284: 0e 94 bc 00 call 0x178 ; 0x178 <lcd_data>
288: fa cf rjmp .-12 ; 0x27e <lcd_string+0x6>
28a: df 91 pop r29
28c: cf 91 pop r28
28e: 08 95 ret
00000290 <lcd_generatechar>:
290: ef 92 push r14
292: ff 92 push r15
294: 0f 93 push r16
296: 1f 93 push r17
298: cf 93 push r28
29a: df 93 push r29
29c: 00 d0 rcall .+0 ; 0x29e <lcd_generatechar+0xe>
29e: cd b7 in r28, 0x3d ; 61
2a0: de b7 in r29, 0x3e ; 62
2a2: 28 e0 ldi r18, 0x08 ; 8
2a4: 82 9f mul r24, r18
2a6: c0 01 movw r24, r0
2a8: 11 24 eor r1, r1
2aa: 80 64 ori r24, 0x40 ; 64
2ac: 69 83 std Y+1, r22 ; 0x01
2ae: 7a 83 std Y+2, r23 ; 0x02
2b0: 0e 94 cc 00 call 0x198 ; 0x198 <lcd_command>
2b4: 69 81 ldd r22, Y+1 ; 0x01
2b6: e6 2e mov r14, r22
2b8: 7a 81 ldd r23, Y+2 ; 0x02
2ba: f7 2e mov r15, r23
2bc: 87 01 movw r16, r14
2be: 08 5f subi r16, 0xF8 ; 248
2c0: 1f 4f sbci r17, 0xFF ; 255
2c2: f7 01 movw r30, r14
2c4: 81 91 ld r24, Z+
2c6: 7f 01 movw r14, r30
2c8: 0e 94 bc 00 call 0x178 ; 0x178 <lcd_data>
2cc: e0 16 cp r14, r16
2ce: f1 06 cpc r15, r17
2d0: c1 f7 brne .-16 ; 0x2c2 <lcd_generatechar+0x32>
2d2: 80 e8 ldi r24, 0x80 ; 128
2d4: 0f 90 pop r0
2d6: 0f 90 pop r0
2d8: df 91 pop r29
2da: cf 91 pop r28
2dc: 1f 91 pop r17
2de: 0f 91 pop r16
2e0: ff 90 pop r15
2e2: ef 90 pop r14
2e4: 0c 94 cc 00 jmp 0x198 ; 0x198 <lcd_command>
000002e8 <main>:
2e8: 81 e0 ldi r24, 0x01 ; 1
2ea: 0e 94 59 00 call 0xb2 ; 0xb2 <led_config>
2ee: 0e 94 5c 00 call 0xb8 ; 0xb8 <led_init>
2f2: 0e 94 a2 00 call 0x144 ; 0x144 <led_disco>
2f6: 0e 94 e5 00 call 0x1ca ; 0x1ca <lcd_init>
2fa: 81 e0 ldi r24, 0x01 ; 1
2fc: 91 e0 ldi r25, 0x01 ; 1
2fe: 0e 94 3c 01 call 0x278 ; 0x278 <lcd_string>
302: 85 e0 ldi r24, 0x05 ; 5
304: 0e 94 8a 00 call 0x114 ; 0x114 <led_flash>
308: 2f ef ldi r18, 0xFF ; 255
30a: 89 e6 ldi r24, 0x69 ; 105
30c: 98 e1 ldi r25, 0x18 ; 24
30e: 21 50 subi r18, 0x01 ; 1
310: 80 40 sbci r24, 0x00 ; 0
312: 90 40 sbci r25, 0x00 ; 0
314: e1 f7 brne .-8 ; 0x30e <main+0x26>
316: 00 c0 rjmp .+0 ; 0x318 <main+0x30>
318: 00 00 nop
31a: f3 cf rjmp .-26 ; 0x302 <main+0x1a>
0000031c <_exit>:
31c: f8 94 cli
0000031e <__stop_program>:
31e: ff cf rjmp .-2 ; 0x31e <__stop_program>