364 lines
12 KiB
Plaintext
364 lines
12 KiB
Plaintext
1 .file "main.c"
|
|
2 __SREG__ = 0x3f
|
|
3 __SP_H__ = 0x3e
|
|
4 __SP_L__ = 0x3d
|
|
5 __CCP__ = 0x34
|
|
6 __tmp_reg__ = 0
|
|
7 __zero_reg__ = 1
|
|
15 .Ltext0:
|
|
16 .global init_io
|
|
18 init_io:
|
|
19 .LFB1:
|
|
20 .LM1:
|
|
21 /* prologue: function */
|
|
22 /* frame size = 0 */
|
|
23 /* stack size = 0 */
|
|
24 .L__stack_usage = 0
|
|
25 .LM2:
|
|
26 0000 81B3 in r24,49-32
|
|
27 0002 8370 andi r24,lo8(3)
|
|
28 0004 81BB out 49-32,r24
|
|
29 .LM3:
|
|
30 0006 82B3 in r24,50-32
|
|
31 0008 8C6F ori r24,lo8(-4)
|
|
32 000a 82BB out 50-32,r24
|
|
33 .LM4:
|
|
34 000c B898 cbi 55-32,0
|
|
35 .LM5:
|
|
36 000e C09A sbi 56-32,0
|
|
37 .LM6:
|
|
38 0010 D79A sbi 58-32,7
|
|
39 .LM7:
|
|
40 0012 DF98 cbi 59-32,7
|
|
41 .LM8:
|
|
42 0014 85E0 ldi r24,lo8(5)
|
|
43 0016 83BF out 83-32,r24
|
|
44 .LM9:
|
|
45 0018 84E6 ldi r24,lo8(100)
|
|
46 001a 82BF out 82-32,r24
|
|
47 .LM10:
|
|
48 001c 89B7 in r24,89-32
|
|
49 001e 8160 ori r24,lo8(1)
|
|
50 0020 89BF out 89-32,r24
|
|
51 /* epilogue start */
|
|
52 .LM11:
|
|
53 0022 0895 ret
|
|
54 .LFE1:
|
|
56 .global __vector_9
|
|
58 __vector_9:
|
|
59 .LFB2:
|
|
60 .LM12:
|
|
61 0024 1F92 push __zero_reg__
|
|
62 0026 0F92 push r0
|
|
63 0028 0FB6 in r0,__SREG__
|
|
64 002a 0F92 push r0
|
|
65 002c 1124 clr __zero_reg__
|
|
66 002e 2F93 push r18
|
|
67 0030 3F93 push r19
|
|
68 0032 4F93 push r20
|
|
69 0034 5F93 push r21
|
|
70 0036 8F93 push r24
|
|
71 0038 9F93 push r25
|
|
72 /* prologue: Signal */
|
|
73 /* frame size = 0 */
|
|
74 /* stack size = 9 */
|
|
75 .L__stack_usage = 9
|
|
76 .LM13:
|
|
77 003a 84E6 ldi r24,lo8(100)
|
|
78 003c 82BF out 82-32,r24
|
|
79 .LM14:
|
|
80 003e 4091 0000 lds r20,key_state
|
|
81 0042 5091 0000 lds r21,key_state+1
|
|
82 0046 80B3 in r24,48-32
|
|
83 0048 96B3 in r25,54-32
|
|
84 004a 392F mov r19,r25
|
|
85 004c 20E0 ldi r18,lo8(0)
|
|
86 004e 90E0 ldi r25,lo8(0)
|
|
87 0050 822B or r24,r18
|
|
88 0052 932B or r25,r19
|
|
89 0054 8095 com r24
|
|
90 0056 9095 com r25
|
|
91 0058 8427 eor r24,r20
|
|
92 005a 9527 eor r25,r21
|
|
93 .LVL0:
|
|
94 .LM15:
|
|
95 005c 2091 0000 lds r18,ct0.1588
|
|
96 0060 3091 0000 lds r19,ct0.1588+1
|
|
97 0064 2823 and r18,r24
|
|
98 0066 3923 and r19,r25
|
|
99 0068 2095 com r18
|
|
100 006a 3095 com r19
|
|
101 006c 3093 0000 sts ct0.1588+1,r19
|
|
102 0070 2093 0000 sts ct0.1588,r18
|
|
103 .LM16:
|
|
104 0074 4091 0000 lds r20,ct1.1589
|
|
105 0078 5091 0000 lds r21,ct1.1589+1
|
|
106 007c 4823 and r20,r24
|
|
107 007e 5923 and r21,r25
|
|
108 0080 4227 eor r20,r18
|
|
109 0082 5327 eor r21,r19
|
|
110 0084 5093 0000 sts ct1.1589+1,r21
|
|
111 0088 4093 0000 sts ct1.1589,r20
|
|
112 .LM17:
|
|
113 008c 8223 and r24,r18
|
|
114 008e 9323 and r25,r19
|
|
115 .LVL1:
|
|
116 0090 8423 and r24,r20
|
|
117 0092 9523 and r25,r21
|
|
118 .LVL2:
|
|
119 .LM18:
|
|
120 0094 2091 0000 lds r18,key_state
|
|
121 0098 3091 0000 lds r19,key_state+1
|
|
122 009c 2827 eor r18,r24
|
|
123 009e 3927 eor r19,r25
|
|
124 00a0 3093 0000 sts key_state+1,r19
|
|
125 00a4 2093 0000 sts key_state,r18
|
|
126 .LM19:
|
|
127 00a8 2091 0000 lds r18,key_press
|
|
128 00ac 3091 0000 lds r19,key_press+1
|
|
129 00b0 4091 0000 lds r20,key_state
|
|
130 00b4 5091 0000 lds r21,key_state+1
|
|
131 00b8 4823 and r20,r24
|
|
132 00ba 5923 and r21,r25
|
|
133 00bc 422B or r20,r18
|
|
134 00be 532B or r21,r19
|
|
135 00c0 5093 0000 sts key_press+1,r21
|
|
136 00c4 4093 0000 sts key_press,r20
|
|
137 /* epilogue start */
|
|
138 .LM20:
|
|
139 00c8 9F91 pop r25
|
|
140 00ca 8F91 pop r24
|
|
141 .LVL3:
|
|
142 00cc 5F91 pop r21
|
|
143 00ce 4F91 pop r20
|
|
144 00d0 3F91 pop r19
|
|
145 00d2 2F91 pop r18
|
|
146 00d4 0F90 pop r0
|
|
147 00d6 0FBE out __SREG__,r0
|
|
148 00d8 0F90 pop r0
|
|
149 00da 1F90 pop __zero_reg__
|
|
150 00dc 1895 reti
|
|
151 .LFE2:
|
|
153 .global get_key_press
|
|
155 get_key_press:
|
|
156 .LFB3:
|
|
157 .LM21:
|
|
158 .LVL4:
|
|
159 /* prologue: function */
|
|
160 /* frame size = 0 */
|
|
161 /* stack size = 0 */
|
|
162 .L__stack_usage = 0
|
|
163 00de 9C01 movw r18,r24
|
|
164 .LM22:
|
|
165 /* #APP */
|
|
166 ; 131 "main.c" 1
|
|
167 00e0 F894 cli
|
|
168 ; 0 "" 2
|
|
169 .LM23:
|
|
170 /* #NOAPP */
|
|
171 00e2 8091 0000 lds r24,key_press
|
|
172 00e6 9091 0000 lds r25,key_press+1
|
|
173 .LVL5:
|
|
174 00ea 2823 and r18,r24
|
|
175 00ec 3923 and r19,r25
|
|
176 .LVL6:
|
|
177 .LM24:
|
|
178 00ee 8091 0000 lds r24,key_press
|
|
179 00f2 9091 0000 lds r25,key_press+1
|
|
180 00f6 8227 eor r24,r18
|
|
181 00f8 9327 eor r25,r19
|
|
182 00fa 9093 0000 sts key_press+1,r25
|
|
183 00fe 8093 0000 sts key_press,r24
|
|
184 .LM25:
|
|
185 /* #APP */
|
|
186 ; 135 "main.c" 1
|
|
187 0102 7894 sei
|
|
188 ; 0 "" 2
|
|
189 .LM26:
|
|
190 /* #NOAPP */
|
|
191 0104 C901 movw r24,r18
|
|
192 /* epilogue start */
|
|
193 0106 0895 ret
|
|
194 .LFE3:
|
|
196 .global main
|
|
198 main:
|
|
199 .LFB0:
|
|
200 .LM27:
|
|
201 /* prologue: function */
|
|
202 /* frame size = 0 */
|
|
203 /* stack size = 0 */
|
|
204 .L__stack_usage = 0
|
|
205 .LM28:
|
|
206 0108 0E94 0000 call init_io
|
|
207 .LM29:
|
|
208 010c 0E94 0000 call lcd_init
|
|
209 .LM30:
|
|
210 0110 87E6 ldi r24,lo8(103)
|
|
211 0112 90E0 ldi r25,hi8(103)
|
|
212 0114 0E94 0000 call uart_init
|
|
213 .LM31:
|
|
214 0118 80E0 ldi r24,lo8(0)
|
|
215 011a 60E0 ldi r22,lo8(0)
|
|
216 011c 0E94 0000 call lcd_setcursor
|
|
217 .LM32:
|
|
218 /* #APP */
|
|
219 ; 55 "main.c" 1
|
|
220 0120 7894 sei
|
|
221 ; 0 "" 2
|
|
222 /* #NOAPP */
|
|
223 .L20:
|
|
224 .LM33:
|
|
225 0122 0E94 0000 call uart_available
|
|
226 0126 1816 cp __zero_reg__,r24
|
|
227 0128 1906 cpc __zero_reg__,r25
|
|
228 012a 04F4 brge .L5
|
|
229 .LM34:
|
|
230 012c 0E94 0000 call uart_getc
|
|
231 .LVL7:
|
|
232 .LM35:
|
|
233 0130 8A32 cpi r24,42
|
|
234 0132 9105 cpc r25,__zero_reg__
|
|
235 0134 01F4 brne .L6
|
|
236 .LM36:
|
|
237 0136 0E94 0000 call lcd_clear
|
|
238 .LVL8:
|
|
239 013a 00C0 rjmp .L5
|
|
240 .LVL9:
|
|
241 .L6:
|
|
242 .LM37:
|
|
243 013c 8B32 cpi r24,43
|
|
244 013e 9105 cpc r25,__zero_reg__
|
|
245 0140 01F4 brne .L7
|
|
246 .LM38:
|
|
247 0142 80E0 ldi r24,lo8(0)
|
|
248 .LVL10:
|
|
249 0144 62E0 ldi r22,lo8(2)
|
|
250 0146 0E94 0000 call lcd_setcursor
|
|
251 014a 00C0 rjmp .L5
|
|
252 .LVL11:
|
|
253 .L7:
|
|
254 .LM39:
|
|
255 014c 8732 cpi r24,39
|
|
256 014e 9105 cpc r25,__zero_reg__
|
|
257 0150 01F4 brne .L8
|
|
258 .LM40:
|
|
259 0152 DF98 cbi 59-32,7
|
|
260 0154 00C0 rjmp .L5
|
|
261 .L8:
|
|
262 .LM41:
|
|
263 0156 8332 cpi r24,35
|
|
264 0158 9105 cpc r25,__zero_reg__
|
|
265 015a 01F4 brne .L9
|
|
266 .LM42:
|
|
267 015c DF9A sbi 59-32,7
|
|
268 015e 00C0 rjmp .L5
|
|
269 .L9:
|
|
270 .LM43:
|
|
271 0160 0E94 0000 call lcd_data
|
|
272 .LVL12:
|
|
273 .L5:
|
|
274 .LM44:
|
|
275 0164 80E1 ldi r24,lo8(16)
|
|
276 0166 90E0 ldi r25,hi8(16)
|
|
277 0168 0E94 0000 call get_key_press
|
|
278 016c 0097 sbiw r24,0
|
|
279 016e 01F0 breq .L10
|
|
280 .LM45:
|
|
281 0170 86E6 ldi r24,lo8(102)
|
|
282 0172 0E94 0000 call uart_putc
|
|
283 .L10:
|
|
284 .LM46:
|
|
285 0176 80E2 ldi r24,lo8(32)
|
|
286 0178 90E0 ldi r25,hi8(32)
|
|
287 017a 0E94 0000 call get_key_press
|
|
288 017e 0097 sbiw r24,0
|
|
289 0180 01F0 breq .L11
|
|
290 .LM47:
|
|
291 0182 86E4 ldi r24,lo8(70)
|
|
292 0184 0E94 0000 call uart_putc
|
|
293 .L11:
|
|
294 .LM48:
|
|
295 0188 88E0 ldi r24,lo8(8)
|
|
296 018a 90E0 ldi r25,hi8(8)
|
|
297 018c 0E94 0000 call get_key_press
|
|
298 0190 0097 sbiw r24,0
|
|
299 0192 01F0 breq .L12
|
|
300 .LM49:
|
|
301 0194 83E7 ldi r24,lo8(115)
|
|
302 0196 0E94 0000 call uart_putc
|
|
303 .L12:
|
|
304 .LM50:
|
|
305 019a 80E8 ldi r24,lo8(128)
|
|
306 019c 90E0 ldi r25,hi8(128)
|
|
307 019e 0E94 0000 call get_key_press
|
|
308 01a2 0097 sbiw r24,0
|
|
309 01a4 01F0 breq .L13
|
|
310 .LM51:
|
|
311 01a6 81E4 ldi r24,lo8(65)
|
|
312 01a8 0E94 0000 call uart_putc
|
|
313 .L13:
|
|
314 .LM52:
|
|
315 01ac 80E4 ldi r24,lo8(64)
|
|
316 01ae 90E0 ldi r25,hi8(64)
|
|
317 01b0 0E94 0000 call get_key_press
|
|
318 01b4 0097 sbiw r24,0
|
|
319 01b6 01F0 breq .L14
|
|
320 .LM53:
|
|
321 01b8 81E6 ldi r24,lo8(97)
|
|
322 01ba 0E94 0000 call uart_putc
|
|
323 .L14:
|
|
324 .LM54:
|
|
325 01be 80E0 ldi r24,lo8(256)
|
|
326 01c0 91E0 ldi r25,hi8(256)
|
|
327 01c2 0E94 0000 call get_key_press
|
|
328 01c6 0097 sbiw r24,0
|
|
329 01c8 01F0 breq .L15
|
|
330 .LM55:
|
|
331 01ca 8FE6 ldi r24,lo8(111)
|
|
332 01cc 0E94 0000 call uart_putc
|
|
333 .L15:
|
|
334 .LM56:
|
|
335 01d0 84E0 ldi r24,lo8(4)
|
|
336 01d2 90E0 ldi r25,hi8(4)
|
|
337 01d4 0E94 0000 call get_key_press
|
|
338 01d8 0097 sbiw r24,0
|
|
339 01da 01F4 brne .+2
|
|
340 01dc 00C0 rjmp .L20
|
|
341 .LM57:
|
|
342 01de 86E7 ldi r24,lo8(118)
|
|
343 01e0 0E94 0000 call uart_putc
|
|
344 01e4 00C0 rjmp .L20
|
|
345 .LFE0:
|
|
347 .comm key_state,2,1
|
|
348 .comm key_press,2,1
|
|
349 .lcomm ct1.1589,2
|
|
350 .lcomm ct0.1588,2
|
|
399 .Letext0:
|
|
DEFINED SYMBOLS
|
|
*ABS*:0000000000000000 main.c
|
|
/tmp/cc8a5ehv.s:2 *ABS*:000000000000003f __SREG__
|
|
/tmp/cc8a5ehv.s:3 *ABS*:000000000000003e __SP_H__
|
|
/tmp/cc8a5ehv.s:4 *ABS*:000000000000003d __SP_L__
|
|
/tmp/cc8a5ehv.s:5 *ABS*:0000000000000034 __CCP__
|
|
/tmp/cc8a5ehv.s:6 *ABS*:0000000000000000 __tmp_reg__
|
|
/tmp/cc8a5ehv.s:7 *ABS*:0000000000000001 __zero_reg__
|
|
/tmp/cc8a5ehv.s:18 .text:0000000000000000 init_io
|
|
/tmp/cc8a5ehv.s:58 .text:0000000000000024 __vector_9
|
|
*COM*:0000000000000002 key_state
|
|
/tmp/cc8a5ehv.s:349 .bss:0000000000000002 ct0.1588
|
|
.bss:0000000000000000 ct1.1589
|
|
*COM*:0000000000000002 key_press
|
|
/tmp/cc8a5ehv.s:155 .text:00000000000000de get_key_press
|
|
/tmp/cc8a5ehv.s:198 .text:0000000000000108 main
|
|
|
|
UNDEFINED SYMBOLS
|
|
lcd_init
|
|
uart_init
|
|
lcd_setcursor
|
|
uart_available
|
|
uart_getc
|
|
lcd_clear
|
|
lcd_data
|
|
uart_putc
|
|
__do_clear_bss
|