Files
2023-03-13 09:01:12 +00:00

1152 lines
39 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 <main>
46: d8 c2 rjmp .+1456 ; 0x5f8 <_exit>
00000048 <__bad_interrupt>:
48: db cf rjmp .-74 ; 0x0 <__vectors>
0000004a <delay_1us>:
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 <delay_1us+0x2>
50: 08 95 ret
00000052 <delay_1ms>:
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 <delay_1ms+0x4>
5a: 08 95 ret
0000005c <delay_nms>:
{
_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 <delay_nms+0x78>
__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 <delay_nms+0x70>
{
// __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 <delay_nms+0x82>
c0: c9 01 movw r24, r18
c2: 01 97 sbiw r24, 0x01 ; 1
c4: f1 f7 brne .-4 ; 0xc2 <delay_nms+0x66>
{
// 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 <delay_nms+0x5e>
}
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 <delay_nms+0x7c>
#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 <delay_nms+0x7e>
}
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 <LCD_write_byte>:
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_write_byte+0xa>
LCD_DC_clr;
f6: da 98 cbi 0x1b, 2 ; 27
f8: 01 c0 rjmp .+2 ; 0xfc <LCD_write_byte+0xc>
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 <LCD_write_byte+0x16>
SDIN_set;
102: d9 9a sbi 0x1b, 1 ; 27
104: 01 c0 rjmp .+2 ; 0x108 <LCD_write_byte+0x18>
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 <LCD_write_byte+0xe>
dat = dat << 1;
//delay_1us();
SCLK_set;
//delay_1us();
}
LCD_CE_set;
112: db 9a sbi 0x1b, 3 ; 27
114: 08 95 ret
00000116 <LCD_clear>:
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>
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 <LCD_write_byte>
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 <LCD_write_byte>
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_clear+0x14>
{
LCD_write_byte(0, 1);
}
}
134: df 91 pop r29
136: cf 91 pop r28
138: 08 95 ret
0000013a <LCD_init>:
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 <delay_1us>
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 <delay_1us>
LCD_CE_set;
14a: db 9a sbi 0x1b, 3 ; 27
delay_1us();
14c: 7e df rcall .-260 ; 0x4a <delay_1us>
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>
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>
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>
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>
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_write_byte>
LCD_clear(); // clear the LCD
16c: d4 df rcall .-88 ; 0x116 <LCD_clear>
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_write_byte>
LCD_CE_clr;
174: db 98 cbi 0x1b, 3 ; 27
176: 08 95 ret
00000178 <LCD_set_XY>:
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>
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 <LCD_write_byte>
0000018e <LCD_write_char>:
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 <LCD_write_byte>
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_char+0x1c>
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 <LCD_write_english_string>:
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 <LCD_write_english_string+0xa>
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 <LCD_set_XY>
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_english_string+0x2a>
{
LCD_write_char(*s);
1ee: cf df rcall .-98 ; 0x18e <LCD_write_char>
1f0: f9 cf rjmp .-14 ; 0x1e4 <LCD_write_english_string+0x1c>
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 <LCD_draw_bmp_pixel>:
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<row;n++)
23c: e1 2c mov r14, r1
23e: f1 2c mov r15, r1
240: 10 e0 ldi r17, 0x00 ; 0
242: 67 2d mov r22, r7
244: 6e 0d add r22, r14
246: e0 16 cp r14, r16
248: f1 06 cpc r15, r17
24a: b8 f4 brcc .+46 ; 0x27a <__stack+0x1b>
{
LCD_set_XY(X,Y);
24c: 86 2d mov r24, r6
24e: 94 df rcall .-216 ; 0x178 <LCD_set_XY>
for(i=0; i<Pix_x; i++)
250: 4e 01 movw r8, r28
252: 94 01 movw r18, r8
254: 2a 0d add r18, r10
256: 3b 1d adc r19, r11
258: 2c 15 cp r18, r12
25a: 3d 05 cpc r19, r13
25c: 30 f4 brcc .+12 ; 0x26a <__stack+0xb>
{
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 <LCD_write_byte>
268: f4 cf rjmp .-24 ; 0x252 <LCD_draw_bmp_pixel+0x52>
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<row;n++)
26a: ff ef ldi r31, 0xFF ; 255
26c: ef 1a sub r14, r31
26e: ff 0a sbc r15, r31
270: cc 0d add r28, r12
272: dd 1d adc r29, r13
274: ac 18 sub r10, r12
276: bd 08 sbc r11, r13
278: e4 cf rjmp .-56 ; 0x242 <LCD_draw_bmp_pixel+0x42>
{
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 <LCD_pixel>:
Return value : None.
--------------------------------------------------------------------------------------------------*/
void LCD_pixel (unsigned char x, unsigned char y, LcdPixelMode mode)
{
298: 08 95 ret
0000029a <LCD_line>:
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 <main>:
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_init>
LCD_clear(); //clear the LCD
2a6: 37 df rcall .-402 ; 0x116 <LCD_clear>
LCD_write_char('*');
2a8: 8a e2 ldi r24, 0x2A ; 42
2aa: 71 df rcall .-286 ; 0x18e <LCD_write_char>
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>
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_byte>
LCD_write_char('L');
2b8: 8c e4 ldi r24, 0x4C ; 76
2ba: 69 df rcall .-302 ; 0x18e <LCD_write_char>
LCD_write_char('o');
2bc: 8f e6 ldi r24, 0x6F ; 111
2be: 67 df rcall .-306 ; 0x18e <LCD_write_char>
LCD_write_char('v');
2c0: 86 e7 ldi r24, 0x76 ; 118
2c2: 65 df rcall .-310 ; 0x18e <LCD_write_char>
LCD_write_char('e');
2c4: 85 e6 ldi r24, 0x65 ; 101
2c6: 63 df rcall .-314 ; 0x18e <LCD_write_char>
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>
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>
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>
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>
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_byte>
LCD_write_char('S');
2e6: 83 e5 ldi r24, 0x53 ; 83
2e8: 52 df rcall .-348 ; 0x18e <LCD_write_char>
LCD_write_char('i');
2ea: 89 e6 ldi r24, 0x69 ; 105
2ec: 50 df rcall .-352 ; 0x18e <LCD_write_char>
LCD_write_char('l');
2ee: 8c e6 ldi r24, 0x6C ; 108
2f0: 4e df rcall .-356 ; 0x18e <LCD_write_char>
LCD_write_char('v');
2f2: 86 e7 ldi r24, 0x76 ; 118
2f4: 4c df rcall .-360 ; 0x18e <LCD_write_char>
LCD_write_char('i');
2f6: 89 e6 ldi r24, 0x69 ; 105
2f8: 4a df rcall .-364 ; 0x18e <LCD_write_char>
LCD_write_char('a');
2fa: 81 e6 ldi r24, 0x61 ; 97
2fc: 48 df rcall .-368 ; 0x18e <LCD_write_char>
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>
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_byte>
LCD_write_char('*');
30a: 8a e2 ldi r24, 0x2A ; 42
30c: 40 df rcall .-384 ; 0x18e <LCD_write_char>
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 <LCD_write_english_string>
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 <main+0x8e>
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 <main+0x8c>
332: f5 cf rjmp .-22 ; 0x31e <main+0x82>
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>