matemat/main.lst

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