main.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn 0 .text 000005fc 00000000 00000000 00000074 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE 1 .data 0000022e 00800060 000005fc 00000670 2**0 CONTENTS, ALLOC, LOAD, DATA 2 .comment 00000011 00000000 00000000 0000089e 2**0 CONTENTS, READONLY 3 .debug_aranges 00000040 00000000 00000000 000008af 2**0 CONTENTS, READONLY, DEBUGGING 4 .debug_info 00000a93 00000000 00000000 000008ef 2**0 CONTENTS, READONLY, DEBUGGING 5 .debug_abbrev 000003a3 00000000 00000000 00001382 2**0 CONTENTS, READONLY, DEBUGGING 6 .debug_line 000002df 00000000 00000000 00001725 2**0 CONTENTS, READONLY, DEBUGGING 7 .debug_frame 000001c8 00000000 00000000 00001a04 2**2 CONTENTS, READONLY, DEBUGGING 8 .debug_str 00000252 00000000 00000000 00001bcc 2**0 CONTENTS, READONLY, DEBUGGING 9 .debug_loc 0000074c 00000000 00000000 00001e1e 2**0 CONTENTS, READONLY, DEBUGGING 10 .debug_ranges 00000058 00000000 00000000 0000256a 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: 00000000 <__vectors>: 0: 10 c0 rjmp .+32 ; 0x22 <__ctors_end> 2: 22 c0 rjmp .+68 ; 0x48 <__bad_interrupt> 4: 21 c0 rjmp .+66 ; 0x48 <__bad_interrupt> 6: 20 c0 rjmp .+64 ; 0x48 <__bad_interrupt> 8: 1f c0 rjmp .+62 ; 0x48 <__bad_interrupt> a: 1e c0 rjmp .+60 ; 0x48 <__bad_interrupt> c: 1d c0 rjmp .+58 ; 0x48 <__bad_interrupt> e: 1c c0 rjmp .+56 ; 0x48 <__bad_interrupt> 10: 1b c0 rjmp .+54 ; 0x48 <__bad_interrupt> 12: 1a c0 rjmp .+52 ; 0x48 <__bad_interrupt> 14: 19 c0 rjmp .+50 ; 0x48 <__bad_interrupt> 16: 18 c0 rjmp .+48 ; 0x48 <__bad_interrupt> 18: 17 c0 rjmp .+46 ; 0x48 <__bad_interrupt> 1a: 16 c0 rjmp .+44 ; 0x48 <__bad_interrupt> 1c: 15 c0 rjmp .+42 ; 0x48 <__bad_interrupt> 1e: 14 c0 rjmp .+40 ; 0x48 <__bad_interrupt> 20: 13 c0 rjmp .+38 ; 0x48 <__bad_interrupt> 00000022 <__ctors_end>: 22: 11 24 eor r1, r1 24: 1f be out 0x3f, r1 ; 63 26: cf e5 ldi r28, 0x5F ; 95 28: d2 e0 ldi r29, 0x02 ; 2 2a: de bf out 0x3e, r29 ; 62 2c: cd bf out 0x3d, r28 ; 61 0000002e <__do_copy_data>: 2e: 12 e0 ldi r17, 0x02 ; 2 30: a0 e6 ldi r26, 0x60 ; 96 32: b0 e0 ldi r27, 0x00 ; 0 34: ec ef ldi r30, 0xFC ; 252 36: f5 e0 ldi r31, 0x05 ; 5 38: 02 c0 rjmp .+4 ; 0x3e <__SP_H__> 3a: 05 90 lpm r0, Z+ 3c: 0d 92 st X+, r0 3e: ae 38 cpi r26, 0x8E ; 142 40: b1 07 cpc r27, r17 42: d9 f7 brne .-10 ; 0x3a <__do_copy_data+0xc> 44: 2b d1 rcall .+598 ; 0x29c
46: d8 c2 rjmp .+1456 ; 0x5f8 <_exit> 00000048 <__bad_interrupt>: 48: db cf rjmp .-74 ; 0x0 <__vectors> 0000004a : can be achieved. */ void _delay_loop_1(uint8_t __count) { __asm__ volatile ( 4a: 81 e0 ldi r24, 0x01 ; 1 4c: 8a 95 dec r24 4e: f1 f7 brne .-4 ; 0x4c 50: 08 95 ret 00000052 : milliseconds can be achieved. */ void _delay_loop_2(uint16_t __count) { __asm__ volatile ( 52: 8a ef ldi r24, 0xFA ; 250 54: 90 e0 ldi r25, 0x00 ; 0 56: 01 97 sbiw r24, 0x01 ; 1 58: f1 f7 brne .-4 ; 0x56 5a: 08 95 ret 0000005c : { _delay_ms(1); } void delay_nms(unsigned int n) //delay nms { 5c: 8f 92 push r8 5e: 9f 92 push r9 60: af 92 push r10 62: bf 92 push r11 64: cf 92 push r12 66: df 92 push r13 68: ef 92 push r14 6a: ff 92 push r15 _delay_ms(n); 6c: bc 01 movw r22, r24 6e: 80 e0 ldi r24, 0x00 ; 0 70: 90 e0 ldi r25, 0x00 ; 0 72: 90 d1 rcall .+800 ; 0x394 <__floatunsisf> 74: 4b 01 movw r8, r22 76: 5c 01 movw r10, r24 __builtin_avr_delay_cycles(__ticks_dc); #else uint16_t __ticks; __tmp = ((F_CPU) / 4e3) * __ms; 78: 20 e0 ldi r18, 0x00 ; 0 7a: 30 e0 ldi r19, 0x00 ; 0 7c: 4a e7 ldi r20, 0x7A ; 122 7e: 53 e4 ldi r21, 0x43 ; 67 80: 17 d2 rcall .+1070 ; 0x4b0 <__mulsf3> 82: 6b 01 movw r12, r22 84: 7c 01 movw r14, r24 if (__tmp < 1.0) 86: 20 e0 ldi r18, 0x00 ; 0 88: 30 e0 ldi r19, 0x00 ; 0 8a: 40 e8 ldi r20, 0x80 ; 128 8c: 5f e3 ldi r21, 0x3F ; 63 8e: 52 d1 rcall .+676 ; 0x334 <__cmpsf2> 90: 87 fd sbrc r24, 7 92: 20 c0 rjmp .+64 ; 0xd4 __ticks = 1; else if (__tmp > 65535) 94: 20 e0 ldi r18, 0x00 ; 0 96: 3f ef ldi r19, 0xFF ; 255 98: 4f e7 ldi r20, 0x7F ; 127 9a: 57 e4 ldi r21, 0x47 ; 71 9c: c7 01 movw r24, r14 9e: b6 01 movw r22, r12 a0: 03 d2 rcall .+1030 ; 0x4a8 <__gesf2> a2: 18 16 cp r1, r24 a4: 9c f4 brge .+38 ; 0xcc { // __ticks = requested delay in 1/10 ms __ticks = (uint16_t) (__ms * 10.0); a6: 20 e0 ldi r18, 0x00 ; 0 a8: 30 e0 ldi r19, 0x00 ; 0 aa: 40 e2 ldi r20, 0x20 ; 32 ac: 51 e4 ldi r21, 0x41 ; 65 ae: c5 01 movw r24, r10 b0: b4 01 movw r22, r8 b2: fe d1 rcall .+1020 ; 0x4b0 <__mulsf3> b4: 43 d1 rcall .+646 ; 0x33c <__fixunssfsi> b6: 29 e1 ldi r18, 0x19 ; 25 b8: 30 e0 ldi r19, 0x00 ; 0 while(__ticks) ba: 61 15 cp r22, r1 bc: 71 05 cpc r23, r1 be: 79 f0 breq .+30 ; 0xde c0: c9 01 movw r24, r18 c2: 01 97 sbiw r24, 0x01 ; 1 c4: f1 f7 brne .-4 ; 0xc2 { // wait 1/10 ms _delay_loop_2(((F_CPU) / 4e3) / 10); __ticks --; c6: 61 50 subi r22, 0x01 ; 1 c8: 71 09 sbc r23, r1 ca: f7 cf rjmp .-18 ; 0xba } return; } else __ticks = (uint16_t)__tmp; cc: c7 01 movw r24, r14 ce: b6 01 movw r22, r12 d0: 35 d1 rcall .+618 ; 0x33c <__fixunssfsi> d2: 02 c0 rjmp .+4 ; 0xd8 #else uint16_t __ticks; __tmp = ((F_CPU) / 4e3) * __ms; if (__tmp < 1.0) __ticks = 1; d4: 61 e0 ldi r22, 0x01 ; 1 d6: 70 e0 ldi r23, 0x00 ; 0 d8: cb 01 movw r24, r22 da: 01 97 sbiw r24, 0x01 ; 1 dc: f1 f7 brne .-4 ; 0xda } de: ff 90 pop r15 e0: ef 90 pop r14 e2: df 90 pop r13 e4: cf 90 pop r12 e6: bf 90 pop r11 e8: af 90 pop r10 ea: 9f 90 pop r9 ec: 8f 90 pop r8 ee: 08 95 ret 000000f0 : created date 2014-01-08 -----------------------------------------------------------------------*/ void LCD_write_byte(unsigned char dat, unsigned char command) { unsigned char i; LCD_CE_clr; f0: db 98 cbi 0x1b, 3 ; 27 if (command == 0) f2: 61 11 cpse r22, r1 f4: 02 c0 rjmp .+4 ; 0xfa LCD_DC_clr; f6: da 98 cbi 0x1b, 2 ; 27 f8: 01 c0 rjmp .+2 ; 0xfc else LCD_DC_set; fa: da 9a sbi 0x1b, 2 ; 27 command -> command (0) /data (1) created date 2014-01-08 -----------------------------------------------------------------------*/ void LCD_write_byte(unsigned char dat, unsigned char command) { fc: 98 e0 ldi r25, 0x08 ; 8 else LCD_DC_set; for(i=0;i<8;i++) { if(dat&0x80) fe: 87 ff sbrs r24, 7 100: 02 c0 rjmp .+4 ; 0x106 SDIN_set; 102: d9 9a sbi 0x1b, 1 ; 27 104: 01 c0 rjmp .+2 ; 0x108 else SDIN_clr; 106: d9 98 cbi 0x1b, 1 ; 27 SCLK_clr; 108: d8 98 cbi 0x1b, 0 ; 27 dat = dat << 1; 10a: 88 0f add r24, r24 //delay_1us(); SCLK_set; 10c: d8 9a sbi 0x1b, 0 ; 27 10e: 91 50 subi r25, 0x01 ; 1 if (command == 0) LCD_DC_clr; else LCD_DC_set; for(i=0;i<8;i++) 110: b1 f7 brne .-20 ; 0xfe dat = dat << 1; //delay_1us(); SCLK_set; //delay_1us(); } LCD_CE_set; 112: db 9a sbi 0x1b, 3 ; 27 114: 08 95 ret 00000116 : input parmenter: None created date 2014-01-08 -----------------------------------------------------------------------*/ void LCD_clear(void) { 116: cf 93 push r28 118: df 93 push r29 unsigned int i; LCD_write_byte(0x0c, 0); 11a: 60 e0 ldi r22, 0x00 ; 0 11c: 8c e0 ldi r24, 0x0C ; 12 11e: e8 df rcall .-48 ; 0xf0 LCD_write_byte(0x80, 0); 120: 60 e0 ldi r22, 0x00 ; 0 122: 80 e8 ldi r24, 0x80 ; 128 124: e5 df rcall .-54 ; 0xf0 126: c8 ef ldi r28, 0xF8 ; 248 128: d1 e0 ldi r29, 0x01 ; 1 for (i=0; i<504; i++) { LCD_write_byte(0, 1); 12a: 61 e0 ldi r22, 0x01 ; 1 12c: 80 e0 ldi r24, 0x00 ; 0 12e: e0 df rcall .-64 ; 0xf0 130: 21 97 sbiw r28, 0x01 ; 1 unsigned int i; LCD_write_byte(0x0c, 0); LCD_write_byte(0x80, 0); for (i=0; i<504; i++) 132: d9 f7 brne .-10 ; 0x12a { LCD_write_byte(0, 1); } } 134: df 91 pop r29 136: cf 91 pop r28 138: 08 95 ret 0000013a : created date 2014-01-08 -----------------------------------------------------------------------*/ void LCD_init(void) { DDRA|=0X1F; 13a: 8a b3 in r24, 0x1a ; 26 13c: 8f 61 ori r24, 0x1F ; 31 13e: 8a bb out 0x1a, r24 ; 26 LCD_RST_clr; 140: dc 98 cbi 0x1b, 4 ; 27 delay_1us(); 142: 83 df rcall .-250 ; 0x4a LCD_RST_set; 144: dc 9a sbi 0x1b, 4 ; 27 LCD_CE_clr; 146: db 98 cbi 0x1b, 3 ; 27 delay_1us(); 148: 80 df rcall .-256 ; 0x4a LCD_CE_set; 14a: db 9a sbi 0x1b, 3 ; 27 delay_1us(); 14c: 7e df rcall .-260 ; 0x4a LCD_write_byte(0x21, 0); // set LCD mode 14e: 60 e0 ldi r22, 0x00 ; 0 150: 81 e2 ldi r24, 0x21 ; 33 152: ce df rcall .-100 ; 0xf0 LCD_write_byte(0xC8, 0); // set bias voltage 154: 60 e0 ldi r22, 0x00 ; 0 156: 88 ec ldi r24, 0xC8 ; 200 158: cb df rcall .-106 ; 0xf0 LCD_write_byte(0x06, 0); // temperature correction 15a: 60 e0 ldi r22, 0x00 ; 0 15c: 86 e0 ldi r24, 0x06 ; 6 15e: c8 df rcall .-112 ; 0xf0 LCD_write_byte(0x13, 0); // 1:48 160: 60 e0 ldi r22, 0x00 ; 0 162: 83 e1 ldi r24, 0x13 ; 19 164: c5 df rcall .-118 ; 0xf0 LCD_write_byte(0x20, 0); // use bias command 166: 60 e0 ldi r22, 0x00 ; 0 168: 80 e2 ldi r24, 0x20 ; 32 16a: c2 df rcall .-124 ; 0xf0 LCD_clear(); // clear the LCD 16c: d4 df rcall .-88 ; 0x116 LCD_write_byte(0x0c, 0); // set LCD mode,display normally 16e: 60 e0 ldi r22, 0x00 ; 0 170: 8c e0 ldi r24, 0x0C ; 12 172: be df rcall .-132 ; 0xf0 LCD_CE_clr; 174: db 98 cbi 0x1b, 3 ; 27 176: 08 95 ret 00000178 : Y -> 0­5 created date 2014-01-08 -----------------------------------------------------------------------*/ void LCD_set_XY(unsigned char X, unsigned char Y) { 178: cf 93 push r28 17a: c8 2f mov r28, r24 17c: 86 2f mov r24, r22 LCD_write_byte(0x40 | Y, 0); // column 17e: 60 e0 ldi r22, 0x00 ; 0 180: 80 64 ori r24, 0x40 ; 64 182: b6 df rcall .-148 ; 0xf0 LCD_write_byte(0x80 | X, 0); // row 184: 60 e0 ldi r22, 0x00 ; 0 186: 8c 2f mov r24, r28 188: 80 68 ori r24, 0x80 ; 128 } 18a: cf 91 pop r28 created date 2014-01-08 -----------------------------------------------------------------------*/ void LCD_set_XY(unsigned char X, unsigned char Y) { LCD_write_byte(0x40 | Y, 0); // column LCD_write_byte(0x80 | X, 0); // row 18c: b1 cf rjmp .-158 ; 0xf0 0000018e : input parameter: c -> char to display created date 2014-01-08 -----------------------------------------------------------------------*/ void LCD_write_char(unsigned char c) { 18e: 0f 93 push r16 190: 1f 93 push r17 192: cf 93 push r28 194: df 93 push r29 unsigned char line; c -= 32; 196: 80 52 subi r24, 0x20 ; 32 198: 90 e0 ldi r25, 0x00 ; 0 19a: 66 e0 ldi r22, 0x06 ; 6 19c: 70 e0 ldi r23, 0x00 ; 0 19e: 1b d2 rcall .+1078 ; 0x5d6 <__mulhi3> 1a0: 8c 01 movw r16, r24 1a2: 00 5a subi r16, 0xA0 ; 160 1a4: 1f 4f sbci r17, 0xFF ; 255 1a6: c0 e0 ldi r28, 0x00 ; 0 1a8: d0 e0 ldi r29, 0x00 ; 0 1aa: f8 01 movw r30, r16 1ac: ec 0f add r30, r28 1ae: fd 1f adc r31, r29 for (line=0; line<6; line++) LCD_write_byte(font6x8[c][line], 1); 1b0: 61 e0 ldi r22, 0x01 ; 1 1b2: 80 81 ld r24, Z 1b4: 9d df rcall .-198 ; 0xf0 1b6: 21 96 adiw r28, 0x01 ; 1 void LCD_write_char(unsigned char c) { unsigned char line; c -= 32; for (line=0; line<6; line++) 1b8: c6 30 cpi r28, 0x06 ; 6 1ba: d1 05 cpc r29, r1 1bc: b1 f7 brne .-20 ; 0x1aa LCD_write_byte(font6x8[c][line], 1); } 1be: df 91 pop r29 1c0: cf 91 pop r28 1c2: 1f 91 pop r17 1c4: 0f 91 pop r16 1c6: 08 95 ret 000001c8 : s -> String to display created date 2014-01-08 -----------------------------------------------------------------------*/ void LCD_write_english_string(unsigned char X,unsigned char Y, unsigned char *s) { 1c8: 0f 93 push r16 1ca: 1f 93 push r17 1cc: cf 93 push r28 1ce: df 93 push r29 1d0: 00 d0 rcall .+0 ; 0x1d2 1d2: cd b7 in r28, 0x3d ; 61 1d4: de b7 in r29, 0x3e ; 62 LCD_set_XY(X,Y); 1d6: 49 83 std Y+1, r20 ; 0x01 1d8: 5a 83 std Y+2, r21 ; 0x02 1da: ce df rcall .-100 ; 0x178 1dc: 49 81 ldd r20, Y+1 ; 0x01 1de: 04 2f mov r16, r20 1e0: 5a 81 ldd r21, Y+2 ; 0x02 1e2: 15 2f mov r17, r21 while (*s) 1e4: f8 01 movw r30, r16 1e6: 81 91 ld r24, Z+ 1e8: 8f 01 movw r16, r30 1ea: 88 23 and r24, r24 1ec: 11 f0 breq .+4 ; 0x1f2 { LCD_write_char(*s); 1ee: cf df rcall .-98 ; 0x18e 1f0: f9 cf rjmp .-14 ; 0x1e4 s++; } } 1f2: 0f 90 pop r0 1f4: 0f 90 pop r0 1f6: df 91 pop r29 1f8: cf 91 pop r28 1fa: 1f 91 pop r17 1fc: 0f 91 pop r16 1fe: 08 95 ret 00000200 : Pix_y -> width created date 2014-01-08 -----------------------------------------------------------------------*/ void LCD_draw_bmp_pixel(unsigned char X,unsigned char Y,unsigned char *map, unsigned char Pix_x,unsigned char Pix_y) { 200: 6f 92 push r6 202: 7f 92 push r7 204: 8f 92 push r8 206: 9f 92 push r9 208: af 92 push r10 20a: bf 92 push r11 20c: cf 92 push r12 20e: df 92 push r13 210: ef 92 push r14 212: ff 92 push r15 214: 0f 93 push r16 216: 1f 93 push r17 218: cf 93 push r28 21a: df 93 push r29 21c: 68 2e mov r6, r24 21e: 76 2e mov r7, r22 unsigned int i,n; unsigned char row; if (Pix_y%8==0) row=Pix_y/8; //calculate how many line are needed 220: 80 2f mov r24, r16 222: 87 70 andi r24, 0x07 ; 7 224: 06 95 lsr r16 226: 06 95 lsr r16 228: 06 95 lsr r16 22a: 81 11 cpse r24, r1 else row=Pix_y/8+1; 22c: 0f 5f subi r16, 0xFF ; 255 22e: c2 2e mov r12, r18 230: d1 2c mov r13, r1 232: ea 01 movw r28, r20 234: aa 24 eor r10, r10 236: bb 24 eor r11, r11 238: a4 1a sub r10, r20 23a: b5 0a sbc r11, r21 for (n=0;n { LCD_set_XY(X,Y); 24c: 86 2d mov r24, r6 24e: 94 df rcall .-216 ; 0x178 for(i=0; i { LCD_write_byte(map[i+n*Pix_x], 1); 25e: 61 e0 ldi r22, 0x01 ; 1 260: f4 01 movw r30, r8 262: 81 91 ld r24, Z+ 264: 4f 01 movw r8, r30 266: 44 df rcall .-376 ; 0xf0 268: f4 cf rjmp .-24 ; 0x252 unsigned char row; if (Pix_y%8==0) row=Pix_y/8; //calculate how many line are needed else row=Pix_y/8+1; for (n=0;n { LCD_write_byte(map[i+n*Pix_x], 1); } Y++; // next line } } 27a: df 91 pop r29 27c: cf 91 pop r28 27e: 1f 91 pop r17 280: 0f 91 pop r16 282: ff 90 pop r15 284: ef 90 pop r14 286: df 90 pop r13 288: cf 90 pop r12 28a: bf 90 pop r11 28c: af 90 pop r10 28e: 9f 90 pop r9 290: 8f 90 pop r8 292: 7f 90 pop r7 294: 6f 90 pop r6 296: 08 95 ret 00000298 : Return value : None. --------------------------------------------------------------------------------------------------*/ void LCD_pixel (unsigned char x, unsigned char y, LcdPixelMode mode) { 298: 08 95 ret 0000029a : Return value : None. --------------------------------------------------------------------------------------------------*/ void LCD_line (unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, LcdPixelMode mode) { 29a: 08 95 ret 0000029c
: int main (void) { unsigned char zwischenspeicher; DDRB = 0b00000001; 29c: 81 e0 ldi r24, 0x01 ; 1 29e: 87 bb out 0x17, r24 ; 23 DDRA = 0b00011111; 2a0: 8f e1 ldi r24, 0x1F ; 31 2a2: 8a bb out 0x1a, r24 ; 26 LCD_init(); //LCD initialization 2a4: 4a df rcall .-364 ; 0x13a LCD_clear(); //clear the LCD 2a6: 37 df rcall .-402 ; 0x116 LCD_write_char('*'); 2a8: 8a e2 ldi r24, 0x2A ; 42 2aa: 71 df rcall .-286 ; 0x18e LCD_write_byte(0,1); 2ac: 61 e0 ldi r22, 0x01 ; 1 2ae: 80 e0 ldi r24, 0x00 ; 0 2b0: 1f df rcall .-450 ; 0xf0 LCD_write_byte(0,1); 2b2: 61 e0 ldi r22, 0x01 ; 1 2b4: 80 e0 ldi r24, 0x00 ; 0 2b6: 1c df rcall .-456 ; 0xf0 LCD_write_char('L'); 2b8: 8c e4 ldi r24, 0x4C ; 76 2ba: 69 df rcall .-302 ; 0x18e LCD_write_char('o'); 2bc: 8f e6 ldi r24, 0x6F ; 111 2be: 67 df rcall .-306 ; 0x18e LCD_write_char('v'); 2c0: 86 e7 ldi r24, 0x76 ; 118 2c2: 65 df rcall .-310 ; 0x18e LCD_write_char('e'); 2c4: 85 e6 ldi r24, 0x65 ; 101 2c6: 63 df rcall .-314 ; 0x18e LCD_write_byte(0,1); 2c8: 61 e0 ldi r22, 0x01 ; 1 2ca: 80 e0 ldi r24, 0x00 ; 0 2cc: 11 df rcall .-478 ; 0xf0 LCD_write_byte(0,1); 2ce: 61 e0 ldi r22, 0x01 ; 1 2d0: 80 e0 ldi r24, 0x00 ; 0 2d2: 0e df rcall .-484 ; 0xf0 LCD_write_byte(0,1); 2d4: 61 e0 ldi r22, 0x01 ; 1 2d6: 80 e0 ldi r24, 0x00 ; 0 2d8: 0b df rcall .-490 ; 0xf0 LCD_write_byte(0,1); 2da: 61 e0 ldi r22, 0x01 ; 1 2dc: 80 e0 ldi r24, 0x00 ; 0 2de: 08 df rcall .-496 ; 0xf0 LCD_write_byte(0,1); 2e0: 61 e0 ldi r22, 0x01 ; 1 2e2: 80 e0 ldi r24, 0x00 ; 0 2e4: 05 df rcall .-502 ; 0xf0 LCD_write_char('S'); 2e6: 83 e5 ldi r24, 0x53 ; 83 2e8: 52 df rcall .-348 ; 0x18e LCD_write_char('i'); 2ea: 89 e6 ldi r24, 0x69 ; 105 2ec: 50 df rcall .-352 ; 0x18e LCD_write_char('l'); 2ee: 8c e6 ldi r24, 0x6C ; 108 2f0: 4e df rcall .-356 ; 0x18e LCD_write_char('v'); 2f2: 86 e7 ldi r24, 0x76 ; 118 2f4: 4c df rcall .-360 ; 0x18e LCD_write_char('i'); 2f6: 89 e6 ldi r24, 0x69 ; 105 2f8: 4a df rcall .-364 ; 0x18e LCD_write_char('a'); 2fa: 81 e6 ldi r24, 0x61 ; 97 2fc: 48 df rcall .-368 ; 0x18e LCD_write_byte(0,1); 2fe: 61 e0 ldi r22, 0x01 ; 1 300: 80 e0 ldi r24, 0x00 ; 0 302: f6 de rcall .-532 ; 0xf0 LCD_write_byte(0,1); 304: 61 e0 ldi r22, 0x01 ; 1 306: 80 e0 ldi r24, 0x00 ; 0 308: f3 de rcall .-538 ; 0xf0 LCD_write_char('*'); 30a: 8a e2 ldi r24, 0x2A ; 42 30c: 40 df rcall .-384 ; 0x18e LCD_write_english_string(0,1,"LOVE"); 30e: 48 e8 ldi r20, 0x88 ; 136 310: 52 e0 ldi r21, 0x02 ; 2 312: 61 e0 ldi r22, 0x01 ; 1 314: 80 e0 ldi r24, 0x00 ; 0 316: 58 df rcall .-336 ; 0x1c8 while(1) { zwischenspeicher = PORTB; zwischenspeicher = zwischenspeicher ^ 0b00000001; 318: 41 e0 ldi r20, 0x01 ; 1 31a: 29 e1 ldi r18, 0x19 ; 25 31c: 30 e0 ldi r19, 0x00 ; 0 LCD_write_english_string(0,1,"LOVE"); while(1) { zwischenspeicher = PORTB; 31e: 88 b3 in r24, 0x18 ; 24 zwischenspeicher = zwischenspeicher ^ 0b00000001; 320: 84 27 eor r24, r20 PORTB = zwischenspeicher; 322: 88 bb out 0x18, r24 ; 24 324: 88 e8 ldi r24, 0x88 ; 136 326: 93 e1 ldi r25, 0x13 ; 19 328: f9 01 movw r30, r18 32a: 31 97 sbiw r30, 0x01 ; 1 32c: f1 f7 brne .-4 ; 0x32a 32e: 01 97 sbiw r24, 0x01 ; 1 else if (__tmp > 65535) { // __ticks = requested delay in 1/10 ms __ticks = (uint16_t) (__ms * 10.0); while(__ticks) 330: d9 f7 brne .-10 ; 0x328 332: f5 cf rjmp .-22 ; 0x31e 00000334 <__cmpsf2>: 334: 6c d0 rcall .+216 ; 0x40e <__fp_cmp> 336: 08 f4 brcc .+2 ; 0x33a <__cmpsf2+0x6> 338: 81 e0 ldi r24, 0x01 ; 1 33a: 08 95 ret 0000033c <__fixunssfsi>: 33c: 94 d0 rcall .+296 ; 0x466 <__fp_splitA> 33e: 88 f0 brcs .+34 ; 0x362 <__fixunssfsi+0x26> 340: 9f 57 subi r25, 0x7F ; 127 342: 90 f0 brcs .+36 ; 0x368 <__fixunssfsi+0x2c> 344: b9 2f mov r27, r25 346: 99 27 eor r25, r25 348: b7 51 subi r27, 0x17 ; 23 34a: a0 f0 brcs .+40 ; 0x374 <__fixunssfsi+0x38> 34c: d1 f0 breq .+52 ; 0x382 <__fixunssfsi+0x46> 34e: 66 0f add r22, r22 350: 77 1f adc r23, r23 352: 88 1f adc r24, r24 354: 99 1f adc r25, r25 356: 1a f0 brmi .+6 ; 0x35e <__fixunssfsi+0x22> 358: ba 95 dec r27 35a: c9 f7 brne .-14 ; 0x34e <__fixunssfsi+0x12> 35c: 12 c0 rjmp .+36 ; 0x382 <__fixunssfsi+0x46> 35e: b1 30 cpi r27, 0x01 ; 1 360: 81 f0 breq .+32 ; 0x382 <__fixunssfsi+0x46> 362: 9b d0 rcall .+310 ; 0x49a <__fp_zero> 364: b1 e0 ldi r27, 0x01 ; 1 366: 08 95 ret 368: 98 c0 rjmp .+304 ; 0x49a <__fp_zero> 36a: 67 2f mov r22, r23 36c: 78 2f mov r23, r24 36e: 88 27 eor r24, r24 370: b8 5f subi r27, 0xF8 ; 248 372: 39 f0 breq .+14 ; 0x382 <__fixunssfsi+0x46> 374: b9 3f cpi r27, 0xF9 ; 249 376: cc f3 brlt .-14 ; 0x36a <__fixunssfsi+0x2e> 378: 86 95 lsr r24 37a: 77 95 ror r23 37c: 67 95 ror r22 37e: b3 95 inc r27 380: d9 f7 brne .-10 ; 0x378 <__fixunssfsi+0x3c> 382: 3e f4 brtc .+14 ; 0x392 <__fixunssfsi+0x56> 384: 90 95 com r25 386: 80 95 com r24 388: 70 95 com r23 38a: 61 95 neg r22 38c: 7f 4f sbci r23, 0xFF ; 255 38e: 8f 4f sbci r24, 0xFF ; 255 390: 9f 4f sbci r25, 0xFF ; 255 392: 08 95 ret 00000394 <__floatunsisf>: 394: e8 94 clt 396: 09 c0 rjmp .+18 ; 0x3aa <__floatsisf+0x12> 00000398 <__floatsisf>: 398: 97 fb bst r25, 7 39a: 3e f4 brtc .+14 ; 0x3aa <__floatsisf+0x12> 39c: 90 95 com r25 39e: 80 95 com r24 3a0: 70 95 com r23 3a2: 61 95 neg r22 3a4: 7f 4f sbci r23, 0xFF ; 255 3a6: 8f 4f sbci r24, 0xFF ; 255 3a8: 9f 4f sbci r25, 0xFF ; 255 3aa: 99 23 and r25, r25 3ac: a9 f0 breq .+42 ; 0x3d8 <__floatsisf+0x40> 3ae: f9 2f mov r31, r25 3b0: 96 e9 ldi r25, 0x96 ; 150 3b2: bb 27 eor r27, r27 3b4: 93 95 inc r25 3b6: f6 95 lsr r31 3b8: 87 95 ror r24 3ba: 77 95 ror r23 3bc: 67 95 ror r22 3be: b7 95 ror r27 3c0: f1 11 cpse r31, r1 3c2: f8 cf rjmp .-16 ; 0x3b4 <__floatsisf+0x1c> 3c4: fa f4 brpl .+62 ; 0x404 <__floatsisf+0x6c> 3c6: bb 0f add r27, r27 3c8: 11 f4 brne .+4 ; 0x3ce <__floatsisf+0x36> 3ca: 60 ff sbrs r22, 0 3cc: 1b c0 rjmp .+54 ; 0x404 <__floatsisf+0x6c> 3ce: 6f 5f subi r22, 0xFF ; 255 3d0: 7f 4f sbci r23, 0xFF ; 255 3d2: 8f 4f sbci r24, 0xFF ; 255 3d4: 9f 4f sbci r25, 0xFF ; 255 3d6: 16 c0 rjmp .+44 ; 0x404 <__floatsisf+0x6c> 3d8: 88 23 and r24, r24 3da: 11 f0 breq .+4 ; 0x3e0 <__floatsisf+0x48> 3dc: 96 e9 ldi r25, 0x96 ; 150 3de: 11 c0 rjmp .+34 ; 0x402 <__floatsisf+0x6a> 3e0: 77 23 and r23, r23 3e2: 21 f0 breq .+8 ; 0x3ec <__floatsisf+0x54> 3e4: 9e e8 ldi r25, 0x8E ; 142 3e6: 87 2f mov r24, r23 3e8: 76 2f mov r23, r22 3ea: 05 c0 rjmp .+10 ; 0x3f6 <__floatsisf+0x5e> 3ec: 66 23 and r22, r22 3ee: 71 f0 breq .+28 ; 0x40c <__floatsisf+0x74> 3f0: 96 e8 ldi r25, 0x86 ; 134 3f2: 86 2f mov r24, r22 3f4: 70 e0 ldi r23, 0x00 ; 0 3f6: 60 e0 ldi r22, 0x00 ; 0 3f8: 2a f0 brmi .+10 ; 0x404 <__floatsisf+0x6c> 3fa: 9a 95 dec r25 3fc: 66 0f add r22, r22 3fe: 77 1f adc r23, r23 400: 88 1f adc r24, r24 402: da f7 brpl .-10 ; 0x3fa <__floatsisf+0x62> 404: 88 0f add r24, r24 406: 96 95 lsr r25 408: 87 95 ror r24 40a: 97 f9 bld r25, 7 40c: 08 95 ret 0000040e <__fp_cmp>: 40e: 99 0f add r25, r25 410: 00 08 sbc r0, r0 412: 55 0f add r21, r21 414: aa 0b sbc r26, r26 416: e0 e8 ldi r30, 0x80 ; 128 418: fe ef ldi r31, 0xFE ; 254 41a: 16 16 cp r1, r22 41c: 17 06 cpc r1, r23 41e: e8 07 cpc r30, r24 420: f9 07 cpc r31, r25 422: c0 f0 brcs .+48 ; 0x454 <__fp_cmp+0x46> 424: 12 16 cp r1, r18 426: 13 06 cpc r1, r19 428: e4 07 cpc r30, r20 42a: f5 07 cpc r31, r21 42c: 98 f0 brcs .+38 ; 0x454 <__fp_cmp+0x46> 42e: 62 1b sub r22, r18 430: 73 0b sbc r23, r19 432: 84 0b sbc r24, r20 434: 95 0b sbc r25, r21 436: 39 f4 brne .+14 ; 0x446 <__fp_cmp+0x38> 438: 0a 26 eor r0, r26 43a: 61 f0 breq .+24 ; 0x454 <__fp_cmp+0x46> 43c: 23 2b or r18, r19 43e: 24 2b or r18, r20 440: 25 2b or r18, r21 442: 21 f4 brne .+8 ; 0x44c <__fp_cmp+0x3e> 444: 08 95 ret 446: 0a 26 eor r0, r26 448: 09 f4 brne .+2 ; 0x44c <__fp_cmp+0x3e> 44a: a1 40 sbci r26, 0x01 ; 1 44c: a6 95 lsr r26 44e: 8f ef ldi r24, 0xFF ; 255 450: 81 1d adc r24, r1 452: 81 1d adc r24, r1 454: 08 95 ret 00000456 <__fp_split3>: 456: 57 fd sbrc r21, 7 458: 90 58 subi r25, 0x80 ; 128 45a: 44 0f add r20, r20 45c: 55 1f adc r21, r21 45e: 59 f0 breq .+22 ; 0x476 <__fp_splitA+0x10> 460: 5f 3f cpi r21, 0xFF ; 255 462: 71 f0 breq .+28 ; 0x480 <__fp_splitA+0x1a> 464: 47 95 ror r20 00000466 <__fp_splitA>: 466: 88 0f add r24, r24 468: 97 fb bst r25, 7 46a: 99 1f adc r25, r25 46c: 61 f0 breq .+24 ; 0x486 <__fp_splitA+0x20> 46e: 9f 3f cpi r25, 0xFF ; 255 470: 79 f0 breq .+30 ; 0x490 <__fp_splitA+0x2a> 472: 87 95 ror r24 474: 08 95 ret 476: 12 16 cp r1, r18 478: 13 06 cpc r1, r19 47a: 14 06 cpc r1, r20 47c: 55 1f adc r21, r21 47e: f2 cf rjmp .-28 ; 0x464 <__fp_split3+0xe> 480: 46 95 lsr r20 482: f1 df rcall .-30 ; 0x466 <__fp_splitA> 484: 08 c0 rjmp .+16 ; 0x496 <__fp_splitA+0x30> 486: 16 16 cp r1, r22 488: 17 06 cpc r1, r23 48a: 18 06 cpc r1, r24 48c: 99 1f adc r25, r25 48e: f1 cf rjmp .-30 ; 0x472 <__fp_splitA+0xc> 490: 86 95 lsr r24 492: 71 05 cpc r23, r1 494: 61 05 cpc r22, r1 496: 08 94 sec 498: 08 95 ret 0000049a <__fp_zero>: 49a: e8 94 clt 0000049c <__fp_szero>: 49c: bb 27 eor r27, r27 49e: 66 27 eor r22, r22 4a0: 77 27 eor r23, r23 4a2: cb 01 movw r24, r22 4a4: 97 f9 bld r25, 7 4a6: 08 95 ret 000004a8 <__gesf2>: 4a8: b2 df rcall .-156 ; 0x40e <__fp_cmp> 4aa: 08 f4 brcc .+2 ; 0x4ae <__gesf2+0x6> 4ac: 8f ef ldi r24, 0xFF ; 255 4ae: 08 95 ret 000004b0 <__mulsf3>: 4b0: 0a d0 rcall .+20 ; 0x4c6 <__mulsf3x> 4b2: 80 c0 rjmp .+256 ; 0x5b4 <__fp_round> 4b4: 71 d0 rcall .+226 ; 0x598 <__fp_pscA> 4b6: 28 f0 brcs .+10 ; 0x4c2 <__mulsf3+0x12> 4b8: 76 d0 rcall .+236 ; 0x5a6 <__fp_pscB> 4ba: 18 f0 brcs .+6 ; 0x4c2 <__mulsf3+0x12> 4bc: 95 23 and r25, r21 4be: 09 f0 breq .+2 ; 0x4c2 <__mulsf3+0x12> 4c0: 62 c0 rjmp .+196 ; 0x586 <__fp_inf> 4c2: 67 c0 rjmp .+206 ; 0x592 <__fp_nan> 4c4: eb cf rjmp .-42 ; 0x49c <__fp_szero> 000004c6 <__mulsf3x>: 4c6: c7 df rcall .-114 ; 0x456 <__fp_split3> 4c8: a8 f3 brcs .-22 ; 0x4b4 <__mulsf3+0x4> 000004ca <__mulsf3_pse>: 4ca: 99 23 and r25, r25 4cc: d9 f3 breq .-10 ; 0x4c4 <__mulsf3+0x14> 4ce: 55 23 and r21, r21 4d0: c9 f3 breq .-14 ; 0x4c4 <__mulsf3+0x14> 4d2: 95 0f add r25, r21 4d4: 50 e0 ldi r21, 0x00 ; 0 4d6: 55 1f adc r21, r21 4d8: aa 27 eor r26, r26 4da: ee 27 eor r30, r30 4dc: ff 27 eor r31, r31 4de: bb 27 eor r27, r27 4e0: 00 24 eor r0, r0 4e2: 08 94 sec 4e4: 67 95 ror r22 4e6: 20 f4 brcc .+8 ; 0x4f0 <__mulsf3_pse+0x26> 4e8: e2 0f add r30, r18 4ea: f3 1f adc r31, r19 4ec: b4 1f adc r27, r20 4ee: 0a 1e adc r0, r26 4f0: 22 0f add r18, r18 4f2: 33 1f adc r19, r19 4f4: 44 1f adc r20, r20 4f6: aa 1f adc r26, r26 4f8: 66 95 lsr r22 4fa: a9 f7 brne .-22 ; 0x4e6 <__mulsf3_pse+0x1c> 4fc: 77 95 ror r23 4fe: 30 f4 brcc .+12 ; 0x50c <__mulsf3_pse+0x42> 500: f3 0f add r31, r19 502: b4 1f adc r27, r20 504: 0a 1e adc r0, r26 506: 12 1e adc r1, r18 508: 08 f4 brcc .+2 ; 0x50c <__mulsf3_pse+0x42> 50a: 63 95 inc r22 50c: 33 0f add r19, r19 50e: 44 1f adc r20, r20 510: aa 1f adc r26, r26 512: 22 1f adc r18, r18 514: 76 95 lsr r23 516: 99 f7 brne .-26 ; 0x4fe <__mulsf3_pse+0x34> 518: 87 95 ror r24 51a: 20 f4 brcc .+8 ; 0x524 <__mulsf3_pse+0x5a> 51c: b4 0f add r27, r20 51e: 0a 1e adc r0, r26 520: 12 1e adc r1, r18 522: 63 1f adc r22, r19 524: 44 0f add r20, r20 526: aa 1f adc r26, r26 528: 22 1f adc r18, r18 52a: 33 1f adc r19, r19 52c: 86 95 lsr r24 52e: a9 f7 brne .-22 ; 0x51a <__mulsf3_pse+0x50> 530: 86 2f mov r24, r22 532: 71 2d mov r23, r1 534: 60 2d mov r22, r0 536: 11 24 eor r1, r1 538: 9f 57 subi r25, 0x7F ; 127 53a: 50 40 sbci r21, 0x00 ; 0 53c: 8a f0 brmi .+34 ; 0x560 <__mulsf3_pse+0x96> 53e: e1 f0 breq .+56 ; 0x578 <__mulsf3_pse+0xae> 540: 88 23 and r24, r24 542: 4a f0 brmi .+18 ; 0x556 <__mulsf3_pse+0x8c> 544: ee 0f add r30, r30 546: ff 1f adc r31, r31 548: bb 1f adc r27, r27 54a: 66 1f adc r22, r22 54c: 77 1f adc r23, r23 54e: 88 1f adc r24, r24 550: 91 50 subi r25, 0x01 ; 1 552: 50 40 sbci r21, 0x00 ; 0 554: a9 f7 brne .-22 ; 0x540 <__mulsf3_pse+0x76> 556: 9e 3f cpi r25, 0xFE ; 254 558: 51 05 cpc r21, r1 55a: 70 f0 brcs .+28 ; 0x578 <__mulsf3_pse+0xae> 55c: 14 c0 rjmp .+40 ; 0x586 <__fp_inf> 55e: 9e cf rjmp .-196 ; 0x49c <__fp_szero> 560: 5f 3f cpi r21, 0xFF ; 255 562: ec f3 brlt .-6 ; 0x55e <__mulsf3_pse+0x94> 564: 98 3e cpi r25, 0xE8 ; 232 566: dc f3 brlt .-10 ; 0x55e <__mulsf3_pse+0x94> 568: 86 95 lsr r24 56a: 77 95 ror r23 56c: 67 95 ror r22 56e: b7 95 ror r27 570: f7 95 ror r31 572: e7 95 ror r30 574: 9f 5f subi r25, 0xFF ; 255 576: c1 f7 brne .-16 ; 0x568 <__mulsf3_pse+0x9e> 578: fe 2b or r31, r30 57a: 88 0f add r24, r24 57c: 91 1d adc r25, r1 57e: 96 95 lsr r25 580: 87 95 ror r24 582: 97 f9 bld r25, 7 584: 08 95 ret 00000586 <__fp_inf>: 586: 97 f9 bld r25, 7 588: 9f 67 ori r25, 0x7F ; 127 58a: 80 e8 ldi r24, 0x80 ; 128 58c: 70 e0 ldi r23, 0x00 ; 0 58e: 60 e0 ldi r22, 0x00 ; 0 590: 08 95 ret 00000592 <__fp_nan>: 592: 9f ef ldi r25, 0xFF ; 255 594: 80 ec ldi r24, 0xC0 ; 192 596: 08 95 ret 00000598 <__fp_pscA>: 598: 00 24 eor r0, r0 59a: 0a 94 dec r0 59c: 16 16 cp r1, r22 59e: 17 06 cpc r1, r23 5a0: 18 06 cpc r1, r24 5a2: 09 06 cpc r0, r25 5a4: 08 95 ret 000005a6 <__fp_pscB>: 5a6: 00 24 eor r0, r0 5a8: 0a 94 dec r0 5aa: 12 16 cp r1, r18 5ac: 13 06 cpc r1, r19 5ae: 14 06 cpc r1, r20 5b0: 05 06 cpc r0, r21 5b2: 08 95 ret 000005b4 <__fp_round>: 5b4: 09 2e mov r0, r25 5b6: 03 94 inc r0 5b8: 00 0c add r0, r0 5ba: 11 f4 brne .+4 ; 0x5c0 <__fp_round+0xc> 5bc: 88 23 and r24, r24 5be: 52 f0 brmi .+20 ; 0x5d4 <__fp_round+0x20> 5c0: bb 0f add r27, r27 5c2: 40 f4 brcc .+16 ; 0x5d4 <__fp_round+0x20> 5c4: bf 2b or r27, r31 5c6: 11 f4 brne .+4 ; 0x5cc <__fp_round+0x18> 5c8: 60 ff sbrs r22, 0 5ca: 04 c0 rjmp .+8 ; 0x5d4 <__fp_round+0x20> 5cc: 6f 5f subi r22, 0xFF ; 255 5ce: 7f 4f sbci r23, 0xFF ; 255 5d0: 8f 4f sbci r24, 0xFF ; 255 5d2: 9f 4f sbci r25, 0xFF ; 255 5d4: 08 95 ret 000005d6 <__mulhi3>: 5d6: 00 24 eor r0, r0 5d8: 55 27 eor r21, r21 5da: 04 c0 rjmp .+8 ; 0x5e4 <__mulhi3+0xe> 5dc: 08 0e add r0, r24 5de: 59 1f adc r21, r25 5e0: 88 0f add r24, r24 5e2: 99 1f adc r25, r25 5e4: 00 97 sbiw r24, 0x00 ; 0 5e6: 29 f0 breq .+10 ; 0x5f2 <__mulhi3+0x1c> 5e8: 76 95 lsr r23 5ea: 67 95 ror r22 5ec: b8 f3 brcs .-18 ; 0x5dc <__mulhi3+0x6> 5ee: 71 05 cpc r23, r1 5f0: b9 f7 brne .-18 ; 0x5e0 <__mulhi3+0xa> 5f2: 80 2d mov r24, r0 5f4: 95 2f mov r25, r21 5f6: 08 95 ret 000005f8 <_exit>: 5f8: f8 94 cli 000005fa <__stop_program>: 5fa: ff cf rjmp .-2 ; 0x5fa <__stop_program>