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