2888 lines
111 KiB
Plaintext
2888 lines
111 KiB
Plaintext
|
|
Eindopdracht.elf: file format elf32-avr
|
|
|
|
Sections:
|
|
Idx Name Size VMA LMA File off Algn
|
|
0 .data 00000028 00800100 000013b4 00001448 2**0
|
|
CONTENTS, ALLOC, LOAD, DATA
|
|
1 .text 000013b4 00000000 00000000 00000094 2**1
|
|
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
|
2 .bss 0000000c 00800128 00800128 00001470 2**0
|
|
ALLOC
|
|
3 .comment 0000005c 00000000 00000000 00001470 2**0
|
|
CONTENTS, READONLY
|
|
4 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 000014cc 2**2
|
|
CONTENTS, READONLY
|
|
5 .debug_aranges 00000158 00000000 00000000 00001508 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
6 .debug_info 00001677 00000000 00000000 00001660 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
7 .debug_abbrev 00000d6a 00000000 00000000 00002cd7 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
8 .debug_line 00000b32 00000000 00000000 00003a41 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
9 .debug_frame 000003d8 00000000 00000000 00004574 2**2
|
|
CONTENTS, READONLY, DEBUGGING
|
|
10 .debug_str 00000794 00000000 00000000 0000494c 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
11 .debug_loc 000009a3 00000000 00000000 000050e0 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
12 .debug_ranges 00000118 00000000 00000000 00005a83 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
|
|
Disassembly of section .text:
|
|
|
|
00000000 <__vectors>:
|
|
0: c2 c0 rjmp .+388 ; 0x186 <__ctors_end>
|
|
2: 00 00 nop
|
|
4: de c0 rjmp .+444 ; 0x1c2 <__bad_interrupt>
|
|
6: 00 00 nop
|
|
8: dc c0 rjmp .+440 ; 0x1c2 <__bad_interrupt>
|
|
a: 00 00 nop
|
|
c: e2 c1 rjmp .+964 ; 0x3d2 <__vector_3>
|
|
e: 00 00 nop
|
|
10: d8 c0 rjmp .+432 ; 0x1c2 <__bad_interrupt>
|
|
12: 00 00 nop
|
|
14: d6 c0 rjmp .+428 ; 0x1c2 <__bad_interrupt>
|
|
16: 00 00 nop
|
|
18: d4 c0 rjmp .+424 ; 0x1c2 <__bad_interrupt>
|
|
1a: 00 00 nop
|
|
1c: d2 c0 rjmp .+420 ; 0x1c2 <__bad_interrupt>
|
|
1e: 00 00 nop
|
|
20: d0 c0 rjmp .+416 ; 0x1c2 <__bad_interrupt>
|
|
22: 00 00 nop
|
|
24: 2f c2 rjmp .+1118 ; 0x484 <__vector_9>
|
|
26: 00 00 nop
|
|
28: cc c0 rjmp .+408 ; 0x1c2 <__bad_interrupt>
|
|
2a: 00 00 nop
|
|
2c: ca c0 rjmp .+404 ; 0x1c2 <__bad_interrupt>
|
|
2e: 00 00 nop
|
|
30: c8 c0 rjmp .+400 ; 0x1c2 <__bad_interrupt>
|
|
32: 00 00 nop
|
|
34: c6 c0 rjmp .+396 ; 0x1c2 <__bad_interrupt>
|
|
36: 00 00 nop
|
|
38: c4 c0 rjmp .+392 ; 0x1c2 <__bad_interrupt>
|
|
3a: 00 00 nop
|
|
3c: c2 c0 rjmp .+388 ; 0x1c2 <__bad_interrupt>
|
|
3e: 00 00 nop
|
|
40: c0 c0 rjmp .+384 ; 0x1c2 <__bad_interrupt>
|
|
42: 00 00 nop
|
|
44: be c0 rjmp .+380 ; 0x1c2 <__bad_interrupt>
|
|
46: 00 00 nop
|
|
48: bc c0 rjmp .+376 ; 0x1c2 <__bad_interrupt>
|
|
4a: 00 00 nop
|
|
4c: ba c0 rjmp .+372 ; 0x1c2 <__bad_interrupt>
|
|
4e: 00 00 nop
|
|
50: b8 c0 rjmp .+368 ; 0x1c2 <__bad_interrupt>
|
|
52: 00 00 nop
|
|
54: b6 c0 rjmp .+364 ; 0x1c2 <__bad_interrupt>
|
|
56: 00 00 nop
|
|
58: b4 c0 rjmp .+360 ; 0x1c2 <__bad_interrupt>
|
|
5a: 00 00 nop
|
|
5c: b2 c0 rjmp .+356 ; 0x1c2 <__bad_interrupt>
|
|
5e: 00 00 nop
|
|
60: b0 c0 rjmp .+352 ; 0x1c2 <__bad_interrupt>
|
|
62: 00 00 nop
|
|
64: ae c0 rjmp .+348 ; 0x1c2 <__bad_interrupt>
|
|
66: 00 00 nop
|
|
68: ac c0 rjmp .+344 ; 0x1c2 <__bad_interrupt>
|
|
6a: 00 00 nop
|
|
6c: aa c0 rjmp .+340 ; 0x1c2 <__bad_interrupt>
|
|
6e: 00 00 nop
|
|
70: a8 c0 rjmp .+336 ; 0x1c2 <__bad_interrupt>
|
|
72: 00 00 nop
|
|
74: a6 c0 rjmp .+332 ; 0x1c2 <__bad_interrupt>
|
|
76: 00 00 nop
|
|
78: a4 c0 rjmp .+328 ; 0x1c2 <__bad_interrupt>
|
|
7a: 00 00 nop
|
|
7c: a2 c0 rjmp .+324 ; 0x1c2 <__bad_interrupt>
|
|
7e: 00 00 nop
|
|
80: a0 c0 rjmp .+320 ; 0x1c2 <__bad_interrupt>
|
|
82: 00 00 nop
|
|
84: 9e c0 rjmp .+316 ; 0x1c2 <__bad_interrupt>
|
|
86: 00 00 nop
|
|
88: 9c c0 rjmp .+312 ; 0x1c2 <__bad_interrupt>
|
|
...
|
|
|
|
0000008c <__trampolines_end>:
|
|
8c: 00 40 sbci r16, 0x00 ; 0
|
|
8e: 7a 10 cpse r7, r10
|
|
90: f3 5a subi r31, 0xA3 ; 163
|
|
92: 00 a0 ldd r0, Z+32 ; 0x20
|
|
94: 72 4e sbci r23, 0xE2 ; 226
|
|
96: 18 09 sbc r17, r8
|
|
98: 00 10 cpse r0, r0
|
|
9a: a5 d4 rcall .+2378 ; 0x9e6 <vfprintf+0x2c>
|
|
9c: e8 00 .word 0x00e8 ; ????
|
|
9e: 00 e8 ldi r16, 0x80 ; 128
|
|
a0: 76 48 sbci r23, 0x86 ; 134
|
|
a2: 17 00 .word 0x0017 ; ????
|
|
a4: 00 e4 ldi r16, 0x40 ; 64
|
|
a6: 0b 54 subi r16, 0x4B ; 75
|
|
a8: 02 00 .word 0x0002 ; ????
|
|
aa: 00 ca rjmp .-3072 ; 0xfffff4ac <__eeprom_end+0xff7ef4ac>
|
|
ac: 9a 3b cpi r25, 0xBA ; 186
|
|
ae: 00 00 nop
|
|
b0: 00 e1 ldi r16, 0x10 ; 16
|
|
b2: f5 05 cpc r31, r5
|
|
b4: 00 00 nop
|
|
b6: 80 96 adiw r24, 0x20 ; 32
|
|
b8: 98 00 .word 0x0098 ; ????
|
|
ba: 00 00 nop
|
|
bc: 40 42 sbci r20, 0x20 ; 32
|
|
be: 0f 00 .word 0x000f ; ????
|
|
c0: 00 00 nop
|
|
c2: a0 86 std Z+8, r10 ; 0x08
|
|
c4: 01 00 .word 0x0001 ; ????
|
|
c6: 00 00 nop
|
|
c8: 10 27 eor r17, r16
|
|
ca: 00 00 nop
|
|
cc: 00 00 nop
|
|
ce: e8 03 fmulsu r22, r16
|
|
d0: 00 00 nop
|
|
d2: 00 00 nop
|
|
d4: 64 00 .word 0x0064 ; ????
|
|
d6: 00 00 nop
|
|
d8: 00 00 nop
|
|
da: 0a 00 .word 0x000a ; ????
|
|
dc: 00 00 nop
|
|
de: 00 00 nop
|
|
e0: 01 00 .word 0x0001 ; ????
|
|
e2: 00 00 nop
|
|
e4: 00 00 nop
|
|
e6: 2c 76 andi r18, 0x6C ; 108
|
|
e8: d8 88 ldd r13, Y+16 ; 0x10
|
|
ea: dc 67 ori r29, 0x7C ; 124
|
|
ec: 4f 08 sbc r4, r15
|
|
ee: 23 df rcall .-442 ; 0xffffff36 <__eeprom_end+0xff7eff36>
|
|
f0: c1 df rcall .-126 ; 0x74 <__SREG__+0x35>
|
|
f2: ae 59 subi r26, 0x9E ; 158
|
|
f4: e1 b1 in r30, 0x01 ; 1
|
|
f6: b7 96 adiw r30, 0x27 ; 39
|
|
f8: e5 e3 ldi r30, 0x35 ; 53
|
|
fa: e4 53 subi r30, 0x34 ; 52
|
|
fc: c6 3a cpi r28, 0xA6 ; 166
|
|
fe: e6 51 subi r30, 0x16 ; 22
|
|
100: 99 76 andi r25, 0x69 ; 105
|
|
102: 96 e8 ldi r25, 0x86 ; 134
|
|
104: e6 c2 rjmp .+1484 ; 0x6d2 <__divsf3_pse+0x62>
|
|
106: 84 26 eor r8, r20
|
|
108: eb 89 ldd r30, Y+19 ; 0x13
|
|
10a: 8c 9b sbis 0x11, 4 ; 17
|
|
10c: 62 ed ldi r22, 0xD2 ; 210
|
|
10e: 40 7c andi r20, 0xC0 ; 192
|
|
110: 6f fc .word 0xfc6f ; ????
|
|
112: ef bc out 0x2f, r14 ; 47
|
|
114: 9c 9f mul r25, r28
|
|
116: 40 f2 brcs .-112 ; 0xa8 <__trampolines_end+0x1c>
|
|
118: ba a5 ldd r27, Y+42 ; 0x2a
|
|
11a: 6f a5 ldd r22, Y+47 ; 0x2f
|
|
11c: f4 90 lpm r15, Z
|
|
11e: 05 5a subi r16, 0xA5 ; 165
|
|
120: 2a f7 brpl .-54 ; 0xec <__trampolines_end+0x60>
|
|
122: 5c 93 st X, r21
|
|
124: 6b 6c ori r22, 0xCB ; 203
|
|
126: f9 67 ori r31, 0x79 ; 121
|
|
128: 6d c1 rjmp .+730 ; 0x404 <__LOCK_REGION_LENGTH__+0x4>
|
|
12a: 1b fc .word 0xfc1b ; ????
|
|
12c: e0 e4 ldi r30, 0x40 ; 64
|
|
12e: 0d 47 sbci r16, 0x7D ; 125
|
|
130: fe f5 brtc .+126 ; 0x1b0 <__do_clear_bss+0x4>
|
|
132: 20 e6 ldi r18, 0x60 ; 96
|
|
134: b5 00 .word 0x00b5 ; ????
|
|
136: d0 ed ldi r29, 0xD0 ; 208
|
|
138: 90 2e mov r9, r16
|
|
13a: 03 00 .word 0x0003 ; ????
|
|
13c: 94 35 cpi r25, 0x54 ; 84
|
|
13e: 77 05 cpc r23, r7
|
|
140: 00 80 ld r0, Z
|
|
142: 84 1e adc r8, r20
|
|
144: 08 00 .word 0x0008 ; ????
|
|
146: 00 20 and r0, r0
|
|
148: 4e 0a sbc r4, r30
|
|
14a: 00 00 nop
|
|
14c: 00 c8 rjmp .-4096 ; 0xfffff14e <__eeprom_end+0xff7ef14e>
|
|
14e: 0c 33 cpi r16, 0x3C ; 60
|
|
150: 33 33 cpi r19, 0x33 ; 51
|
|
152: 33 0f add r19, r19
|
|
154: 98 6e ori r25, 0xE8 ; 232
|
|
156: 12 83 std Z+2, r17 ; 0x02
|
|
158: 11 41 sbci r17, 0x11 ; 17
|
|
15a: ef 8d ldd r30, Y+31 ; 0x1f
|
|
15c: 21 14 cp r2, r1
|
|
15e: 89 3b cpi r24, 0xB9 ; 185
|
|
160: e6 55 subi r30, 0x56 ; 86
|
|
162: 16 cf rjmp .-468 ; 0xffffff90 <__eeprom_end+0xff7eff90>
|
|
164: fe e6 ldi r31, 0x6E ; 110
|
|
166: db 18 sub r13, r11
|
|
168: d1 84 ldd r13, Z+9 ; 0x09
|
|
16a: 4b 38 cpi r20, 0x8B ; 139
|
|
16c: 1b f7 brvc .-58 ; 0x134 <__trampolines_end+0xa8>
|
|
16e: 7c 1d adc r23, r12
|
|
170: 90 1d adc r25, r0
|
|
172: a4 bb out 0x14, r26 ; 20
|
|
174: e4 24 eor r14, r4
|
|
176: 20 32 cpi r18, 0x20 ; 32
|
|
178: 84 72 andi r24, 0x24 ; 36
|
|
17a: 5e 22 and r5, r30
|
|
17c: 81 00 .word 0x0081 ; ????
|
|
17e: c9 f1 breq .+114 ; 0x1f2 <lcd_strobe_lcd_e>
|
|
180: 24 ec ldi r18, 0xC4 ; 196
|
|
182: a1 e5 ldi r26, 0x51 ; 81
|
|
184: 3d 27 eor r19, r29
|
|
|
|
00000186 <__ctors_end>:
|
|
186: 11 24 eor r1, r1
|
|
188: 1f be out 0x3f, r1 ; 63
|
|
18a: cf ef ldi r28, 0xFF ; 255
|
|
18c: d0 e1 ldi r29, 0x10 ; 16
|
|
18e: de bf out 0x3e, r29 ; 62
|
|
190: cd bf out 0x3d, r28 ; 61
|
|
|
|
00000192 <__do_copy_data>:
|
|
192: 11 e0 ldi r17, 0x01 ; 1
|
|
194: a0 e0 ldi r26, 0x00 ; 0
|
|
196: b1 e0 ldi r27, 0x01 ; 1
|
|
198: e4 eb ldi r30, 0xB4 ; 180
|
|
19a: f3 e1 ldi r31, 0x13 ; 19
|
|
19c: 00 e0 ldi r16, 0x00 ; 0
|
|
19e: 0b bf out 0x3b, r16 ; 59
|
|
1a0: 02 c0 rjmp .+4 ; 0x1a6 <__do_copy_data+0x14>
|
|
1a2: 07 90 elpm r0, Z+
|
|
1a4: 0d 92 st X+, r0
|
|
1a6: a8 32 cpi r26, 0x28 ; 40
|
|
1a8: b1 07 cpc r27, r17
|
|
1aa: d9 f7 brne .-10 ; 0x1a2 <__do_copy_data+0x10>
|
|
|
|
000001ac <__do_clear_bss>:
|
|
1ac: 21 e0 ldi r18, 0x01 ; 1
|
|
1ae: a8 e2 ldi r26, 0x28 ; 40
|
|
1b0: b1 e0 ldi r27, 0x01 ; 1
|
|
1b2: 01 c0 rjmp .+2 ; 0x1b6 <.do_clear_bss_start>
|
|
|
|
000001b4 <.do_clear_bss_loop>:
|
|
1b4: 1d 92 st X+, r1
|
|
|
|
000001b6 <.do_clear_bss_start>:
|
|
1b6: a4 33 cpi r26, 0x34 ; 52
|
|
1b8: b2 07 cpc r27, r18
|
|
1ba: e1 f7 brne .-8 ; 0x1b4 <.do_clear_bss_loop>
|
|
1bc: 31 d1 rcall .+610 ; 0x420 <main>
|
|
1be: 0c 94 d8 09 jmp 0x13b0 ; 0x13b0 <_exit>
|
|
|
|
000001c2 <__bad_interrupt>:
|
|
1c2: 1e cf rjmp .-452 ; 0x0 <__vectors>
|
|
|
|
000001c4 <sbi_porta>:
|
|
{
|
|
int length = snprintf(NULL, 0, "%s: %.3f %s", prefix, number, suffix);
|
|
char str[length + 1];
|
|
snprintf(str, length + 1, "%s: %.3f %s", prefix, number, suffix);
|
|
lcd_write_string(str);
|
|
}
|
|
1c4: 9b b3 in r25, 0x1b ; 27
|
|
1c6: 21 e0 ldi r18, 0x01 ; 1
|
|
1c8: 30 e0 ldi r19, 0x00 ; 0
|
|
1ca: 02 c0 rjmp .+4 ; 0x1d0 <sbi_porta+0xc>
|
|
1cc: 22 0f add r18, r18
|
|
1ce: 33 1f adc r19, r19
|
|
1d0: 8a 95 dec r24
|
|
1d2: e2 f7 brpl .-8 ; 0x1cc <sbi_porta+0x8>
|
|
1d4: 29 2b or r18, r25
|
|
1d6: 2b bb out 0x1b, r18 ; 27
|
|
1d8: 08 95 ret
|
|
|
|
000001da <cbi_porta>:
|
|
1da: 9b b3 in r25, 0x1b ; 27
|
|
1dc: 21 e0 ldi r18, 0x01 ; 1
|
|
1de: 30 e0 ldi r19, 0x00 ; 0
|
|
1e0: 02 c0 rjmp .+4 ; 0x1e6 <cbi_porta+0xc>
|
|
1e2: 22 0f add r18, r18
|
|
1e4: 33 1f adc r19, r19
|
|
1e6: 8a 95 dec r24
|
|
1e8: e2 f7 brpl .-8 ; 0x1e2 <cbi_porta+0x8>
|
|
1ea: 20 95 com r18
|
|
1ec: 29 23 and r18, r25
|
|
1ee: 2b bb out 0x1b, r18 ; 27
|
|
1f0: 08 95 ret
|
|
|
|
000001f2 <lcd_strobe_lcd_e>:
|
|
1f2: 86 e0 ldi r24, 0x06 ; 6
|
|
1f4: 90 e0 ldi r25, 0x00 ; 0
|
|
1f6: e6 df rcall .-52 ; 0x1c4 <sbi_porta>
|
|
1f8: 83 ec ldi r24, 0xC3 ; 195
|
|
1fa: 99 e0 ldi r25, 0x09 ; 9
|
|
1fc: 01 97 sbiw r24, 0x01 ; 1
|
|
1fe: f1 f7 brne .-4 ; 0x1fc <lcd_strobe_lcd_e+0xa>
|
|
200: 00 c0 rjmp .+0 ; 0x202 <lcd_strobe_lcd_e+0x10>
|
|
202: 00 00 nop
|
|
204: 86 e0 ldi r24, 0x06 ; 6
|
|
206: 90 e0 ldi r25, 0x00 ; 0
|
|
208: e8 df rcall .-48 ; 0x1da <cbi_porta>
|
|
20a: 87 e8 ldi r24, 0x87 ; 135
|
|
20c: 93 e1 ldi r25, 0x13 ; 19
|
|
20e: 01 97 sbiw r24, 0x01 ; 1
|
|
210: f1 f7 brne .-4 ; 0x20e <lcd_strobe_lcd_e+0x1c>
|
|
212: 00 c0 rjmp .+0 ; 0x214 <lcd_strobe_lcd_e+0x22>
|
|
214: 00 00 nop
|
|
216: 08 95 ret
|
|
|
|
00000218 <lcd_write_character>:
|
|
218: cf 93 push r28
|
|
21a: c8 2f mov r28, r24
|
|
21c: 85 bb out 0x15, r24 ; 21
|
|
21e: 84 e0 ldi r24, 0x04 ; 4
|
|
220: 90 e0 ldi r25, 0x00 ; 0
|
|
222: d0 df rcall .-96 ; 0x1c4 <sbi_porta>
|
|
224: e6 df rcall .-52 ; 0x1f2 <lcd_strobe_lcd_e>
|
|
226: c2 95 swap r28
|
|
228: c0 7f andi r28, 0xF0 ; 240
|
|
22a: c5 bb out 0x15, r28 ; 21
|
|
22c: 84 e0 ldi r24, 0x04 ; 4
|
|
22e: 90 e0 ldi r25, 0x00 ; 0
|
|
230: c9 df rcall .-110 ; 0x1c4 <sbi_porta>
|
|
232: df df rcall .-66 ; 0x1f2 <lcd_strobe_lcd_e>
|
|
234: cf 91 pop r28
|
|
236: 08 95 ret
|
|
|
|
00000238 <lcd_write_command>:
|
|
238: cf 93 push r28
|
|
23a: c8 2f mov r28, r24
|
|
23c: 85 bb out 0x15, r24 ; 21
|
|
23e: 84 e0 ldi r24, 0x04 ; 4
|
|
240: 90 e0 ldi r25, 0x00 ; 0
|
|
242: cb df rcall .-106 ; 0x1da <cbi_porta>
|
|
244: d6 df rcall .-84 ; 0x1f2 <lcd_strobe_lcd_e>
|
|
246: c2 95 swap r28
|
|
248: c0 7f andi r28, 0xF0 ; 240
|
|
24a: c5 bb out 0x15, r28 ; 21
|
|
24c: 84 e0 ldi r24, 0x04 ; 4
|
|
24e: 90 e0 ldi r25, 0x00 ; 0
|
|
250: c4 df rcall .-120 ; 0x1da <cbi_porta>
|
|
252: cf df rcall .-98 ; 0x1f2 <lcd_strobe_lcd_e>
|
|
254: cf 91 pop r28
|
|
256: 08 95 ret
|
|
|
|
00000258 <lcd_clear>:
|
|
258: 81 e0 ldi r24, 0x01 ; 1
|
|
25a: ee df rcall .-36 ; 0x238 <lcd_write_command>
|
|
25c: 87 e8 ldi r24, 0x87 ; 135
|
|
25e: 93 e1 ldi r25, 0x13 ; 19
|
|
260: 01 97 sbiw r24, 0x01 ; 1
|
|
262: f1 f7 brne .-4 ; 0x260 <lcd_clear+0x8>
|
|
264: 00 c0 rjmp .+0 ; 0x266 <lcd_clear+0xe>
|
|
266: 00 00 nop
|
|
268: 80 e8 ldi r24, 0x80 ; 128
|
|
26a: e6 cf rjmp .-52 ; 0x238 <lcd_write_command>
|
|
26c: 08 95 ret
|
|
|
|
0000026e <init_4bits_mode>:
|
|
26e: cf 93 push r28
|
|
270: 8f ef ldi r24, 0xFF ; 255
|
|
272: 84 bb out 0x14, r24 ; 20
|
|
274: 85 bb out 0x15, r24 ; 21
|
|
276: 8a bb out 0x1a, r24 ; 26
|
|
278: 15 ba out 0x15, r1 ; 21
|
|
27a: 1b ba out 0x1b, r1 ; 27
|
|
27c: c0 e2 ldi r28, 0x20 ; 32
|
|
27e: c5 bb out 0x15, r28 ; 21
|
|
280: b8 df rcall .-144 ; 0x1f2 <lcd_strobe_lcd_e>
|
|
282: c5 bb out 0x15, r28 ; 21
|
|
284: b6 df rcall .-148 ; 0x1f2 <lcd_strobe_lcd_e>
|
|
286: 80 e8 ldi r24, 0x80 ; 128
|
|
288: 85 bb out 0x15, r24 ; 21
|
|
28a: b3 df rcall .-154 ; 0x1f2 <lcd_strobe_lcd_e>
|
|
28c: 15 ba out 0x15, r1 ; 21
|
|
28e: b1 df rcall .-158 ; 0x1f2 <lcd_strobe_lcd_e>
|
|
290: 80 ef ldi r24, 0xF0 ; 240
|
|
292: 85 bb out 0x15, r24 ; 21
|
|
294: ae df rcall .-164 ; 0x1f2 <lcd_strobe_lcd_e>
|
|
296: 15 ba out 0x15, r1 ; 21
|
|
298: ac df rcall .-168 ; 0x1f2 <lcd_strobe_lcd_e>
|
|
29a: 80 e6 ldi r24, 0x60 ; 96
|
|
29c: 85 bb out 0x15, r24 ; 21
|
|
29e: a9 df rcall .-174 ; 0x1f2 <lcd_strobe_lcd_e>
|
|
2a0: 82 e0 ldi r24, 0x02 ; 2
|
|
2a2: ca df rcall .-108 ; 0x238 <lcd_write_command>
|
|
2a4: a6 df rcall .-180 ; 0x1f2 <lcd_strobe_lcd_e>
|
|
2a6: cf 91 pop r28
|
|
2a8: 08 95 ret
|
|
|
|
000002aa <lcd_write_string>:
|
|
2aa: cf 93 push r28
|
|
2ac: df 93 push r29
|
|
2ae: ec 01 movw r28, r24
|
|
2b0: 02 c0 rjmp .+4 ; 0x2b6 <lcd_write_string+0xc>
|
|
2b2: b2 df rcall .-156 ; 0x218 <lcd_write_character>
|
|
2b4: 21 96 adiw r28, 0x01 ; 1
|
|
2b6: 88 81 ld r24, Y
|
|
2b8: 81 11 cpse r24, r1
|
|
2ba: fb cf rjmp .-10 ; 0x2b2 <lcd_write_string+0x8>
|
|
2bc: df 91 pop r29
|
|
2be: cf 91 pop r28
|
|
2c0: 08 95 ret
|
|
|
|
000002c2 <lcd_write_ultrasonic_value>:
|
|
|
|
void lcd_write_ultrasonic_value(float number)
|
|
{
|
|
2c2: 4f 92 push r4
|
|
2c4: 5f 92 push r5
|
|
2c6: 6f 92 push r6
|
|
2c8: 7f 92 push r7
|
|
2ca: af 92 push r10
|
|
2cc: bf 92 push r11
|
|
2ce: cf 92 push r12
|
|
2d0: df 92 push r13
|
|
2d2: ef 92 push r14
|
|
2d4: ff 92 push r15
|
|
2d6: 0f 93 push r16
|
|
2d8: 1f 93 push r17
|
|
2da: cf 93 push r28
|
|
2dc: df 93 push r29
|
|
2de: 00 d0 rcall .+0 ; 0x2e0 <lcd_write_ultrasonic_value+0x1e>
|
|
2e0: 00 d0 rcall .+0 ; 0x2e2 <lcd_write_ultrasonic_value+0x20>
|
|
2e2: 1f 92 push r1
|
|
2e4: cd b7 in r28, 0x3d ; 61
|
|
2e6: de b7 in r29, 0x3e ; 62
|
|
dtostrf(number , 2, 2, temp);
|
|
|
|
char str[length + 1];
|
|
snprintf(str, length + 6, "%s cm", temp);
|
|
lcd_write_string(str);
|
|
}
|
|
2e8: cd b6 in r12, 0x3d ; 61
|
|
2ea: de b6 in r13, 0x3e ; 62
|
|
}
|
|
|
|
void lcd_write_ultrasonic_value(float number)
|
|
{
|
|
//to cm
|
|
number /= 1000;
|
|
2ec: 20 e0 ldi r18, 0x00 ; 0
|
|
2ee: 30 e0 ldi r19, 0x00 ; 0
|
|
2f0: 4a e7 ldi r20, 0x7A ; 122
|
|
2f2: 54 e4 ldi r21, 0x44 ; 68
|
|
2f4: ae d1 rcall .+860 ; 0x652 <__divsf3>
|
|
2f6: 2b 01 movw r4, r22
|
|
2f8: 3c 01 movw r6, r24
|
|
|
|
int length = snprintf(NULL, 0, " cm");
|
|
2fa: 83 e2 ldi r24, 0x23 ; 35
|
|
2fc: 91 e0 ldi r25, 0x01 ; 1
|
|
2fe: 9f 93 push r25
|
|
300: 8f 93 push r24
|
|
302: 1f 92 push r1
|
|
304: 1f 92 push r1
|
|
306: 1f 92 push r1
|
|
308: 1f 92 push r1
|
|
30a: 1b d3 rcall .+1590 ; 0x942 <snprintf>
|
|
30c: 7c 01 movw r14, r24
|
|
|
|
char temp[5];
|
|
dtostrf(number , 2, 2, temp);
|
|
30e: 9e 01 movw r18, r28
|
|
310: 2f 5f subi r18, 0xFF ; 255
|
|
312: 3f 4f sbci r19, 0xFF ; 255
|
|
314: 59 01 movw r10, r18
|
|
316: 89 01 movw r16, r18
|
|
318: 22 e0 ldi r18, 0x02 ; 2
|
|
31a: 42 e0 ldi r20, 0x02 ; 2
|
|
31c: c3 01 movw r24, r6
|
|
31e: b2 01 movw r22, r4
|
|
320: f1 d2 rcall .+1506 ; 0x904 <dtostrf>
|
|
|
|
char str[length + 1];
|
|
322: c7 01 movw r24, r14
|
|
324: 01 96 adiw r24, 0x01 ; 1
|
|
326: 0f 90 pop r0
|
|
328: 0f 90 pop r0
|
|
32a: 0f 90 pop r0
|
|
32c: 0f 90 pop r0
|
|
32e: 0f 90 pop r0
|
|
330: 0f 90 pop r0
|
|
332: 2d b7 in r18, 0x3d ; 61
|
|
334: 3e b7 in r19, 0x3e ; 62
|
|
336: 28 1b sub r18, r24
|
|
338: 39 0b sbc r19, r25
|
|
33a: 0f b6 in r0, 0x3f ; 63
|
|
33c: f8 94 cli
|
|
33e: 3e bf out 0x3e, r19 ; 62
|
|
340: 0f be out 0x3f, r0 ; 63
|
|
342: 2d bf out 0x3d, r18 ; 61
|
|
344: 0d b7 in r16, 0x3d ; 61
|
|
346: 1e b7 in r17, 0x3e ; 62
|
|
348: 0f 5f subi r16, 0xFF ; 255
|
|
34a: 1f 4f sbci r17, 0xFF ; 255
|
|
snprintf(str, length + 6, "%s cm", temp);
|
|
34c: 36 e0 ldi r19, 0x06 ; 6
|
|
34e: e3 0e add r14, r19
|
|
350: f1 1c adc r15, r1
|
|
352: bf 92 push r11
|
|
354: af 92 push r10
|
|
356: 81 e2 ldi r24, 0x21 ; 33
|
|
358: 91 e0 ldi r25, 0x01 ; 1
|
|
35a: 9f 93 push r25
|
|
35c: 8f 93 push r24
|
|
35e: ff 92 push r15
|
|
360: ef 92 push r14
|
|
362: 1f 93 push r17
|
|
364: 0f 93 push r16
|
|
lcd_write_string(str);
|
|
366: ed d2 rcall .+1498 ; 0x942 <snprintf>
|
|
368: 80 2f mov r24, r16
|
|
36a: 91 2f mov r25, r17
|
|
36c: 9e df rcall .-196 ; 0x2aa <lcd_write_string>
|
|
}
|
|
36e: 8d b7 in r24, 0x3d ; 61
|
|
370: 9e b7 in r25, 0x3e ; 62
|
|
372: 08 96 adiw r24, 0x08 ; 8
|
|
374: 0f b6 in r0, 0x3f ; 63
|
|
376: f8 94 cli
|
|
378: 9e bf out 0x3e, r25 ; 62
|
|
37a: 0f be out 0x3f, r0 ; 63
|
|
37c: 8d bf out 0x3d, r24 ; 61
|
|
37e: 0f b6 in r0, 0x3f ; 63
|
|
380: f8 94 cli
|
|
382: de be out 0x3e, r13 ; 62
|
|
384: 0f be out 0x3f, r0 ; 63
|
|
386: cd be out 0x3d, r12 ; 61
|
|
388: 0f 90 pop r0
|
|
38a: 0f 90 pop r0
|
|
38c: 0f 90 pop r0
|
|
38e: 0f 90 pop r0
|
|
390: 0f 90 pop r0
|
|
392: df 91 pop r29
|
|
394: cf 91 pop r28
|
|
396: 1f 91 pop r17
|
|
398: 0f 91 pop r16
|
|
39a: ff 90 pop r15
|
|
39c: ef 90 pop r14
|
|
39e: df 90 pop r13
|
|
3a0: cf 90 pop r12
|
|
3a2: bf 90 pop r11
|
|
3a4: af 90 pop r10
|
|
3a6: 7f 90 pop r7
|
|
3a8: 6f 90 pop r6
|
|
3aa: 5f 90 pop r5
|
|
3ac: 4f 90 pop r4
|
|
3ae: 08 95 ret
|
|
|
|
000003b0 <ultrasoon_value_set_event>:
|
|
ultrasonic_send_pulse();
|
|
}
|
|
|
|
static void ultrasoon_value_set_event(uint16_t value){
|
|
// if the SODAR is initialising, then look for close start object.
|
|
if(initialising){
|
|
3b0: 20 91 00 01 lds r18, 0x0100 ; 0x800100 <__DATA_REGION_ORIGIN__>
|
|
3b4: 22 23 and r18, r18
|
|
3b6: 51 f0 breq .+20 ; 0x3cc <ultrasoon_value_set_event+0x1c>
|
|
if(value > 0 && value < MAX_DISTANCE_INIT){
|
|
3b8: 01 97 sbiw r24, 0x01 ; 1
|
|
3ba: 43 97 sbiw r24, 0x13 ; 19
|
|
3bc: 38 f4 brcc .+14 ; 0x3cc <ultrasoon_value_set_event+0x1c>
|
|
stepper_rotate_stop();
|
|
3be: d1 d0 rcall .+418 ; 0x562 <stepper_rotate_stop>
|
|
initialising = false;
|
|
3c0: 10 92 00 01 sts 0x0100, r1 ; 0x800100 <__DATA_REGION_ORIGIN__>
|
|
// when found, set the initial rotation.
|
|
stepper_rotate_angle(ROTAITION_ANGLE, CounterClockWise);
|
|
3c4: 61 e0 ldi r22, 0x01 ; 1
|
|
3c6: 80 e0 ldi r24, 0x00 ; 0
|
|
3c8: 92 e0 ldi r25, 0x02 ; 2
|
|
3ca: be c0 rjmp .+380 ; 0x548 <stepper_rotate_angle>
|
|
3cc: 08 95 ret
|
|
|
|
000003ce <snap_event_trigger>:
|
|
ultrasonic_handle_interrupt();
|
|
}
|
|
|
|
static void snap_event_trigger(uint8_t rotation){
|
|
// when X amount of steps are taken, do pulse.
|
|
ultrasonic_send_pulse();
|
|
3ce: 04 c1 rjmp .+520 ; 0x5d8 <ultrasonic_send_pulse>
|
|
3d0: 08 95 ret
|
|
|
|
000003d2 <__vector_3>:
|
|
|
|
// if true: in init mode, looking for starting point.
|
|
bool initialising = true;
|
|
|
|
ISR(INT2_vect)
|
|
{
|
|
3d2: 1f 92 push r1
|
|
3d4: 0f 92 push r0
|
|
3d6: 0f b6 in r0, 0x3f ; 63
|
|
3d8: 0f 92 push r0
|
|
3da: 11 24 eor r1, r1
|
|
3dc: 0b b6 in r0, 0x3b ; 59
|
|
3de: 0f 92 push r0
|
|
3e0: 2f 93 push r18
|
|
3e2: 3f 93 push r19
|
|
3e4: 4f 93 push r20
|
|
3e6: 5f 93 push r21
|
|
3e8: 6f 93 push r22
|
|
3ea: 7f 93 push r23
|
|
3ec: 8f 93 push r24
|
|
3ee: 9f 93 push r25
|
|
3f0: af 93 push r26
|
|
3f2: bf 93 push r27
|
|
3f4: ef 93 push r30
|
|
3f6: ff 93 push r31
|
|
ultrasonic_handle_interrupt();
|
|
3f8: fc d0 rcall .+504 ; 0x5f2 <ultrasonic_handle_interrupt>
|
|
}
|
|
3fa: ff 91 pop r31
|
|
3fc: ef 91 pop r30
|
|
3fe: bf 91 pop r27
|
|
400: af 91 pop r26
|
|
402: 9f 91 pop r25
|
|
404: 8f 91 pop r24
|
|
406: 7f 91 pop r23
|
|
408: 6f 91 pop r22
|
|
40a: 5f 91 pop r21
|
|
40c: 4f 91 pop r20
|
|
40e: 3f 91 pop r19
|
|
410: 2f 91 pop r18
|
|
412: 0f 90 pop r0
|
|
414: 0b be out 0x3b, r0 ; 59
|
|
416: 0f 90 pop r0
|
|
418: 0f be out 0x3f, r0 ; 63
|
|
41a: 0f 90 pop r0
|
|
41c: 1f 90 pop r1
|
|
41e: 18 95 reti
|
|
|
|
00000420 <main>:
|
|
}
|
|
|
|
int main(void)
|
|
{
|
|
// initialize ultrasonic sensor driver.
|
|
ultrasonic_init();
|
|
420: cc d0 rcall .+408 ; 0x5ba <ultrasonic_init>
|
|
// initialize LCD display in 4 bit mode.
|
|
init_4bits_mode();
|
|
422: 25 df rcall .-438 ; 0x26e <init_4bits_mode>
|
|
// initialize stepper driver.
|
|
init_stepper_driver();
|
|
424: a0 d0 rcall .+320 ; 0x566 <init_stepper_driver>
|
|
// set the event when a pulse must be sent.
|
|
set_snap_event(&snap_event_trigger);
|
|
426: 87 ee ldi r24, 0xE7 ; 231
|
|
428: 91 e0 ldi r25, 0x01 ; 1
|
|
42a: 27 d0 rcall .+78 ; 0x47a <set_snap_event>
|
|
// set a event for when a value has been set from the ultrasonic sensor.
|
|
set_value_trigger_event(&ultrasoon_value_set_event);
|
|
42c: 88 ed ldi r24, 0xD8 ; 216
|
|
42e: 91 e0 ldi r25, 0x01 ; 1
|
|
430: fe d0 rcall .+508 ; 0x62e <set_value_trigger_event>
|
|
432: 87 ea ldi r24, 0xA7 ; 167
|
|
#else
|
|
//round up by default
|
|
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
|
|
#endif
|
|
|
|
__builtin_avr_delay_cycles(__ticks_dc);
|
|
434: 91 e6 ldi r25, 0x61 ; 97
|
|
436: 01 97 sbiw r24, 0x01 ; 1
|
|
438: f1 f7 brne .-4 ; 0x436 <main+0x16>
|
|
43a: 00 c0 rjmp .+0 ; 0x43c <main+0x1c>
|
|
43c: 00 00 nop
|
|
|
|
_delay_ms(10);
|
|
|
|
lcd_clear();
|
|
43e: 0c df rcall .-488 ; 0x258 <lcd_clear>
|
|
|
|
stepper_rotate_angle(INIT_ROTAITION_ANGLE, ClockWise);
|
|
440: 60 e0 ldi r22, 0x00 ; 0
|
|
442: 88 e5 ldi r24, 0x58 ; 88
|
|
444: 92 e0 ldi r25, 0x02 ; 2
|
|
while (1)
|
|
{
|
|
lcd_clear();
|
|
446: 80 d0 rcall .+256 ; 0x548 <stepper_rotate_angle>
|
|
448: 07 df rcall .-498 ; 0x258 <lcd_clear>
|
|
// set the ultrasonic value to the lcd.
|
|
lcd_write_ultrasonic_value(ultrasonic_get_timer_dist());
|
|
44a: f6 d0 rcall .+492 ; 0x638 <ultrasonic_get_timer_dist>
|
|
44c: 3a df rcall .-396 ; 0x2c2 <lcd_write_ultrasonic_value>
|
|
44e: 84 e6 ldi r24, 0x64 ; 100
|
|
450: 90 e0 ldi r25, 0x00 ; 0
|
|
|
|
wait_ms(LCD_SET_DELAY);
|
|
452: a4 d0 rcall .+328 ; 0x59c <wait_ms>
|
|
454: f9 cf rjmp .-14 ; 0x448 <main+0x28>
|
|
|
|
00000456 <set_stepper_state>:
|
|
|
|
void stepper_rotate_full_rotation_CW();
|
|
void stepper_rotate_full_rotation_CCW();
|
|
|
|
void set_stepper_state(uint8_t count){
|
|
if(rotation == ClockWise){
|
|
456: 90 91 2f 01 lds r25, 0x012F ; 0x80012f <rotation>
|
|
45a: 91 11 cpse r25, r1
|
|
45c: 07 c0 rjmp .+14 ; 0x46c <set_stepper_state+0x16>
|
|
PORTE = CW[count];
|
|
45e: e8 2f mov r30, r24
|
|
460: f0 e0 ldi r31, 0x00 ; 0
|
|
462: ef 5f subi r30, 0xFF ; 255
|
|
464: fe 4f sbci r31, 0xFE ; 254
|
|
466: 80 81 ld r24, Z
|
|
468: 83 b9 out 0x03, r24 ; 3
|
|
46a: 08 95 ret
|
|
} else {
|
|
PORTE = CCW[count];
|
|
46c: e8 2f mov r30, r24
|
|
46e: f0 e0 ldi r31, 0x00 ; 0
|
|
470: e7 5f subi r30, 0xF7 ; 247
|
|
472: fe 4f sbci r31, 0xFE ; 254
|
|
474: 80 81 ld r24, Z
|
|
476: 83 b9 out 0x03, r24 ; 3
|
|
478: 08 95 ret
|
|
|
|
0000047a <set_snap_event>:
|
|
}
|
|
|
|
void (*snap_event)(uint8_t);
|
|
|
|
void set_snap_event(void (*snap_event_p)(uint8_t)){
|
|
snap_event = snap_event_p;
|
|
47a: 90 93 31 01 sts 0x0131, r25 ; 0x800131 <snap_event+0x1>
|
|
47e: 80 93 30 01 sts 0x0130, r24 ; 0x800130 <snap_event>
|
|
482: 08 95 ret
|
|
|
|
00000484 <__vector_9>:
|
|
}
|
|
|
|
ISR( TIMER2_COMP_vect ){
|
|
484: 1f 92 push r1
|
|
486: 0f 92 push r0
|
|
488: 0f b6 in r0, 0x3f ; 63
|
|
48a: 0f 92 push r0
|
|
48c: 11 24 eor r1, r1
|
|
48e: 0b b6 in r0, 0x3b ; 59
|
|
490: 0f 92 push r0
|
|
492: 2f 93 push r18
|
|
494: 3f 93 push r19
|
|
496: 4f 93 push r20
|
|
498: 5f 93 push r21
|
|
49a: 6f 93 push r22
|
|
49c: 7f 93 push r23
|
|
49e: 8f 93 push r24
|
|
4a0: 9f 93 push r25
|
|
4a2: af 93 push r26
|
|
4a4: bf 93 push r27
|
|
4a6: ef 93 push r30
|
|
4a8: ff 93 push r31
|
|
|
|
TCNT2 = 0;
|
|
4aa: 14 bc out 0x24, r1 ; 36
|
|
|
|
set_stepper_state(stepper_state);
|
|
4ac: 80 91 28 01 lds r24, 0x0128 ; 0x800128 <__data_end>
|
|
4b0: d2 df rcall .-92 ; 0x456 <set_stepper_state>
|
|
|
|
if(stepper_state < 7){
|
|
4b2: 80 91 28 01 lds r24, 0x0128 ; 0x800128 <__data_end>
|
|
4b6: 87 30 cpi r24, 0x07 ; 7
|
|
4b8: 20 f4 brcc .+8 ; 0x4c2 <__vector_9+0x3e>
|
|
stepper_state++;
|
|
4ba: 8f 5f subi r24, 0xFF ; 255
|
|
4bc: 80 93 28 01 sts 0x0128, r24 ; 0x800128 <__data_end>
|
|
4c0: 30 c0 rjmp .+96 ; 0x522 <__vector_9+0x9e>
|
|
} else {
|
|
|
|
stepper_state = 0;
|
|
4c2: 10 92 28 01 sts 0x0128, r1 ; 0x800128 <__data_end>
|
|
|
|
if(steps_to_do == 0){
|
|
4c6: 80 91 29 01 lds r24, 0x0129 ; 0x800129 <steps_to_do>
|
|
4ca: 90 91 2a 01 lds r25, 0x012A ; 0x80012a <steps_to_do+0x1>
|
|
4ce: 00 97 sbiw r24, 0x00 ; 0
|
|
4d0: 99 f4 brne .+38 ; 0x4f8 <__vector_9+0x74>
|
|
|
|
// change rotation if the steps todo is 0.
|
|
if(rotation == ClockWise){
|
|
4d2: 80 91 2f 01 lds r24, 0x012F ; 0x80012f <rotation>
|
|
4d6: 81 11 cpse r24, r1
|
|
4d8: 04 c0 rjmp .+8 ; 0x4e2 <__vector_9+0x5e>
|
|
rotation = CounterClockWise;
|
|
4da: 81 e0 ldi r24, 0x01 ; 1
|
|
4dc: 80 93 2f 01 sts 0x012F, r24 ; 0x80012f <rotation>
|
|
4e0: 02 c0 rjmp .+4 ; 0x4e6 <__vector_9+0x62>
|
|
} else {
|
|
rotation = ClockWise;
|
|
4e2: 10 92 2f 01 sts 0x012F, r1 ; 0x80012f <rotation>
|
|
}
|
|
|
|
// set the steps to do again.
|
|
steps_to_do = steps_each_turn;
|
|
4e6: 80 91 2b 01 lds r24, 0x012B ; 0x80012b <steps_each_turn>
|
|
4ea: 90 91 2c 01 lds r25, 0x012C ; 0x80012c <steps_each_turn+0x1>
|
|
4ee: 90 93 2a 01 sts 0x012A, r25 ; 0x80012a <steps_to_do+0x1>
|
|
4f2: 80 93 29 01 sts 0x0129, r24 ; 0x800129 <steps_to_do>
|
|
4f6: 15 c0 rjmp .+42 ; 0x522 <__vector_9+0x9e>
|
|
|
|
} else {
|
|
|
|
// if the stepper step value is at a multiplier of 32 then make snap event.
|
|
if(steps_to_do % STEPS_EACH_PULSE == 0){
|
|
4f8: 9c 01 movw r18, r24
|
|
4fa: 2f 71 andi r18, 0x1F ; 31
|
|
4fc: 33 27 eor r19, r19
|
|
4fe: 23 2b or r18, r19
|
|
500: 39 f4 brne .+14 ; 0x510 <__vector_9+0x8c>
|
|
|
|
if(snap_event != NULL)
|
|
502: e0 91 30 01 lds r30, 0x0130 ; 0x800130 <snap_event>
|
|
506: f0 91 31 01 lds r31, 0x0131 ; 0x800131 <snap_event+0x1>
|
|
50a: 30 97 sbiw r30, 0x00 ; 0
|
|
50c: 09 f0 breq .+2 ; 0x510 <__vector_9+0x8c>
|
|
snap_event(steps_to_do);
|
|
50e: 09 95 icall
|
|
}
|
|
|
|
steps_to_do--;
|
|
510: 80 91 29 01 lds r24, 0x0129 ; 0x800129 <steps_to_do>
|
|
514: 90 91 2a 01 lds r25, 0x012A ; 0x80012a <steps_to_do+0x1>
|
|
518: 01 97 sbiw r24, 0x01 ; 1
|
|
51a: 90 93 2a 01 sts 0x012A, r25 ; 0x80012a <steps_to_do+0x1>
|
|
51e: 80 93 29 01 sts 0x0129, r24 ; 0x800129 <steps_to_do>
|
|
}
|
|
}
|
|
}
|
|
522: ff 91 pop r31
|
|
524: ef 91 pop r30
|
|
526: bf 91 pop r27
|
|
528: af 91 pop r26
|
|
52a: 9f 91 pop r25
|
|
52c: 8f 91 pop r24
|
|
52e: 7f 91 pop r23
|
|
530: 6f 91 pop r22
|
|
532: 5f 91 pop r21
|
|
534: 4f 91 pop r20
|
|
536: 3f 91 pop r19
|
|
538: 2f 91 pop r18
|
|
53a: 0f 90 pop r0
|
|
53c: 0b be out 0x3b, r0 ; 59
|
|
53e: 0f 90 pop r0
|
|
540: 0f be out 0x3f, r0 ; 63
|
|
542: 0f 90 pop r0
|
|
544: 1f 90 pop r1
|
|
546: 18 95 reti
|
|
|
|
00000548 <stepper_rotate_angle>:
|
|
|
|
void stepper_rotate_angle(uint16_t steps, enum rotation_wise rot){
|
|
steps_to_do = steps;
|
|
548: 90 93 2a 01 sts 0x012A, r25 ; 0x80012a <steps_to_do+0x1>
|
|
54c: 80 93 29 01 sts 0x0129, r24 ; 0x800129 <steps_to_do>
|
|
steps_each_turn = steps;
|
|
550: 90 93 2c 01 sts 0x012C, r25 ; 0x80012c <steps_each_turn+0x1>
|
|
554: 80 93 2b 01 sts 0x012B, r24 ; 0x80012b <steps_each_turn>
|
|
rotation = rot;
|
|
558: 60 93 2f 01 sts 0x012F, r22 ; 0x80012f <rotation>
|
|
TCCR2 = 0b00001100;
|
|
55c: 8c e0 ldi r24, 0x0C ; 12
|
|
55e: 85 bd out 0x25, r24 ; 37
|
|
560: 08 95 ret
|
|
|
|
00000562 <stepper_rotate_stop>:
|
|
}
|
|
|
|
void stepper_rotate_stop(){
|
|
TCCR2 = 0b00000000;
|
|
562: 15 bc out 0x25, r1 ; 37
|
|
564: 08 95 ret
|
|
|
|
00000566 <init_stepper_driver>:
|
|
}
|
|
|
|
void init_stepper_driver(){
|
|
DDRE = 0xff;
|
|
566: 8f ef ldi r24, 0xFF ; 255
|
|
568: 82 b9 out 0x02, r24 ; 2
|
|
DDRG = 0xff;
|
|
56a: 80 93 64 00 sts 0x0064, r24 ; 0x800064 <__TEXT_REGION_LENGTH__+0x7e0064>
|
|
PORTG = 0x01;
|
|
56e: 81 e0 ldi r24, 0x01 ; 1
|
|
570: 80 93 65 00 sts 0x0065, r24 ; 0x800065 <__TEXT_REGION_LENGTH__+0x7e0065>
|
|
PORTE = 0x00;
|
|
574: 13 b8 out 0x03, r1 ; 3
|
|
OCR2 = COMPARE_VALUE;
|
|
576: 86 e9 ldi r24, 0x96 ; 150
|
|
578: 83 bd out 0x23, r24 ; 35
|
|
TIMSK = BIT(7);
|
|
57a: 80 e8 ldi r24, 0x80 ; 128
|
|
57c: 87 bf out 0x37, r24 ; 55
|
|
sei();
|
|
57e: 78 94 sei
|
|
580: 08 95 ret
|
|
|
|
00000582 <wait_us>:
|
|
|
|
void (*value_set_event)(uint16_t);
|
|
|
|
void wait_us(unsigned int us)
|
|
{
|
|
for(int i = 0; i < us; i++)
|
|
582: 20 e0 ldi r18, 0x00 ; 0
|
|
584: 30 e0 ldi r19, 0x00 ; 0
|
|
586: 06 c0 rjmp .+12 ; 0x594 <wait_us+0x12>
|
|
#else
|
|
//round up by default
|
|
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
|
|
#endif
|
|
|
|
__builtin_avr_delay_cycles(__ticks_dc);
|
|
588: 43 e0 ldi r20, 0x03 ; 3
|
|
58a: 4a 95 dec r20
|
|
58c: f1 f7 brne .-4 ; 0x58a <wait_us+0x8>
|
|
58e: 00 00 nop
|
|
590: 2f 5f subi r18, 0xFF ; 255
|
|
592: 3f 4f sbci r19, 0xFF ; 255
|
|
594: 28 17 cp r18, r24
|
|
596: 39 07 cpc r19, r25
|
|
598: b8 f3 brcs .-18 ; 0x588 <wait_us+0x6>
|
|
{
|
|
_delay_us(1);
|
|
}
|
|
}
|
|
59a: 08 95 ret
|
|
|
|
0000059c <wait_ms>:
|
|
|
|
void wait_ms(unsigned int ms)
|
|
{
|
|
|
|
for(int i = 0; i < ms; i++)
|
|
59c: 20 e0 ldi r18, 0x00 ; 0
|
|
59e: 30 e0 ldi r19, 0x00 ; 0
|
|
5a0: 08 c0 rjmp .+16 ; 0x5b2 <wait_ms+0x16>
|
|
#else
|
|
//round up by default
|
|
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
|
|
#endif
|
|
|
|
__builtin_avr_delay_cycles(__ticks_dc);
|
|
5a2: e3 ec ldi r30, 0xC3 ; 195
|
|
5a4: f9 e0 ldi r31, 0x09 ; 9
|
|
5a6: 31 97 sbiw r30, 0x01 ; 1
|
|
5a8: f1 f7 brne .-4 ; 0x5a6 <wait_ms+0xa>
|
|
5aa: 00 c0 rjmp .+0 ; 0x5ac <wait_ms+0x10>
|
|
5ac: 00 00 nop
|
|
5ae: 2f 5f subi r18, 0xFF ; 255
|
|
5b0: 3f 4f sbci r19, 0xFF ; 255
|
|
5b2: 28 17 cp r18, r24
|
|
5b4: 39 07 cpc r19, r25
|
|
5b6: a8 f3 brcs .-22 ; 0x5a2 <wait_ms+0x6>
|
|
{
|
|
_delay_ms(1);
|
|
}
|
|
}
|
|
5b8: 08 95 ret
|
|
|
|
000005ba <ultrasonic_init>:
|
|
void ultrasonic_init()
|
|
{
|
|
DDRG = 0xFF; // port g all output. pin 0 is trig, the rest is for debug
|
|
5ba: 8f ef ldi r24, 0xFF ; 255
|
|
5bc: 80 93 64 00 sts 0x0064, r24 ; 0x800064 <__TEXT_REGION_LENGTH__+0x7e0064>
|
|
DDRD = 0x00; // port D pin 0 on input. 0 is echo and also interrupt
|
|
5c0: 11 ba out 0x11, r1 ; 17
|
|
|
|
EICRA = 0x30; // interrupt PORTD on pin 2, rising edge
|
|
5c2: 80 e3 ldi r24, 0x30 ; 48
|
|
5c4: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a>
|
|
|
|
EIMSK |= 0x04; // enable interrupt on pin 2 (INT2)
|
|
5c8: 89 b7 in r24, 0x39 ; 57
|
|
5ca: 84 60 ori r24, 0x04 ; 4
|
|
5cc: 89 bf out 0x39, r24 ; 57
|
|
|
|
TCCR1A = 0b00000000; // initialize timer1, prescaler=256
|
|
5ce: 1f bc out 0x2f, r1 ; 47
|
|
TCCR1B = 0b00001100; // CTC compare A, RUN
|
|
5d0: 8c e0 ldi r24, 0x0C ; 12
|
|
5d2: 8e bd out 0x2e, r24 ; 46
|
|
|
|
sei(); // turn on interrupt system
|
|
5d4: 78 94 sei
|
|
5d6: 08 95 ret
|
|
|
|
000005d8 <ultrasonic_send_pulse>:
|
|
}
|
|
|
|
void ultrasonic_send_pulse()
|
|
{
|
|
5d8: cf 93 push r28
|
|
5da: df 93 push r29
|
|
PORTG = 0x00; // 10 us low pulse
|
|
5dc: c5 e6 ldi r28, 0x65 ; 101
|
|
5de: d0 e0 ldi r29, 0x00 ; 0
|
|
5e0: 18 82 st Y, r1
|
|
wait_us(10);
|
|
5e2: 8a e0 ldi r24, 0x0A ; 10
|
|
5e4: 90 e0 ldi r25, 0x00 ; 0
|
|
5e6: cd df rcall .-102 ; 0x582 <wait_us>
|
|
PORTG = 0x01;
|
|
5e8: 81 e0 ldi r24, 0x01 ; 1
|
|
5ea: 88 83 st Y, r24
|
|
}
|
|
5ec: df 91 pop r29
|
|
5ee: cf 91 pop r28
|
|
5f0: 08 95 ret
|
|
|
|
000005f2 <ultrasonic_handle_interrupt>:
|
|
|
|
void ultrasonic_handle_interrupt()
|
|
{
|
|
// if the interrupt was generated on a rising edge (start sending echo)
|
|
if (int_stat == INTERRUPT_RISING)
|
|
5f2: 80 91 11 01 lds r24, 0x0111 ; 0x800111 <int_stat>
|
|
5f6: 81 30 cpi r24, 0x01 ; 1
|
|
5f8: 41 f4 brne .+16 ; 0x60a <ultrasonic_handle_interrupt+0x18>
|
|
{
|
|
// set interrupt pin 2 on PORTD to falling edge
|
|
EICRA = 0x20;
|
|
5fa: 80 e2 ldi r24, 0x20 ; 32
|
|
5fc: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a>
|
|
|
|
// reset the time in timer1
|
|
TCNT1 = 0x00;
|
|
600: 1d bc out 0x2d, r1 ; 45
|
|
602: 1c bc out 0x2c, r1 ; 44
|
|
|
|
// set interrupt status
|
|
int_stat = INTERRUPT_FALLING;
|
|
604: 10 92 11 01 sts 0x0111, r1 ; 0x800111 <int_stat>
|
|
608: 08 95 ret
|
|
} else
|
|
// else if it was generated on a falling edge (end sending echo)
|
|
{
|
|
// set interrupt pin 0 on PORTD to rising edge
|
|
EICRA = 0x30; // interrupt PORTD on pin 2, rising edge
|
|
60a: 80 e3 ldi r24, 0x30 ; 48
|
|
60c: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a>
|
|
|
|
// read timer1 into time_dist
|
|
timer_dist = TCNT1;
|
|
610: 8c b5 in r24, 0x2c ; 44
|
|
612: 9d b5 in r25, 0x2d ; 45
|
|
614: 90 93 2e 01 sts 0x012E, r25 ; 0x80012e <timer_dist+0x1>
|
|
618: 80 93 2d 01 sts 0x012D, r24 ; 0x80012d <timer_dist>
|
|
|
|
//EVENT
|
|
value_set_event(timer_dist);
|
|
61c: e0 91 32 01 lds r30, 0x0132 ; 0x800132 <value_set_event>
|
|
620: f0 91 33 01 lds r31, 0x0133 ; 0x800133 <value_set_event+0x1>
|
|
624: 09 95 icall
|
|
|
|
// set interrupt status
|
|
int_stat = INTERRUPT_RISING;
|
|
626: 81 e0 ldi r24, 0x01 ; 1
|
|
628: 80 93 11 01 sts 0x0111, r24 ; 0x800111 <int_stat>
|
|
62c: 08 95 ret
|
|
|
|
0000062e <set_value_trigger_event>:
|
|
}
|
|
}
|
|
|
|
void set_value_trigger_event(void (*value_set_event_p)(uint16_t)){
|
|
// event that is triggered when a value is set.
|
|
value_set_event = value_set_event_p;
|
|
62e: 90 93 33 01 sts 0x0133, r25 ; 0x800133 <value_set_event+0x1>
|
|
632: 80 93 32 01 sts 0x0132, r24 ; 0x800132 <value_set_event>
|
|
636: 08 95 ret
|
|
|
|
00000638 <ultrasonic_get_timer_dist>:
|
|
}
|
|
|
|
float ultrasonic_get_timer_dist()
|
|
{
|
|
return (float)(timer_dist * (340 / 2.0));
|
|
638: 60 91 2d 01 lds r22, 0x012D ; 0x80012d <timer_dist>
|
|
63c: 70 91 2e 01 lds r23, 0x012E ; 0x80012e <timer_dist+0x1>
|
|
640: 80 e0 ldi r24, 0x00 ; 0
|
|
642: 90 e0 ldi r25, 0x00 ; 0
|
|
644: 6e d0 rcall .+220 ; 0x722 <__floatunsisf>
|
|
646: 20 e0 ldi r18, 0x00 ; 0
|
|
648: 30 e0 ldi r19, 0x00 ; 0
|
|
64a: 4a e2 ldi r20, 0x2A ; 42
|
|
64c: 53 e4 ldi r21, 0x43 ; 67
|
|
64e: f7 c0 rjmp .+494 ; 0x83e <__mulsf3>
|
|
}
|
|
650: 08 95 ret
|
|
|
|
00000652 <__divsf3>:
|
|
652: 0c d0 rcall .+24 ; 0x66c <__divsf3x>
|
|
654: ba c0 rjmp .+372 ; 0x7ca <__fp_round>
|
|
656: b2 d0 rcall .+356 ; 0x7bc <__fp_pscB>
|
|
658: 40 f0 brcs .+16 ; 0x66a <__divsf3+0x18>
|
|
65a: a9 d0 rcall .+338 ; 0x7ae <__fp_pscA>
|
|
65c: 30 f0 brcs .+12 ; 0x66a <__divsf3+0x18>
|
|
65e: 21 f4 brne .+8 ; 0x668 <__divsf3+0x16>
|
|
660: 5f 3f cpi r21, 0xFF ; 255
|
|
662: 19 f0 breq .+6 ; 0x66a <__divsf3+0x18>
|
|
664: 9b c0 rjmp .+310 ; 0x79c <__fp_inf>
|
|
666: 51 11 cpse r21, r1
|
|
668: e4 c0 rjmp .+456 ; 0x832 <__fp_szero>
|
|
66a: 9e c0 rjmp .+316 ; 0x7a8 <__fp_nan>
|
|
|
|
0000066c <__divsf3x>:
|
|
66c: bf d0 rcall .+382 ; 0x7ec <__fp_split3>
|
|
66e: 98 f3 brcs .-26 ; 0x656 <__divsf3+0x4>
|
|
|
|
00000670 <__divsf3_pse>:
|
|
670: 99 23 and r25, r25
|
|
672: c9 f3 breq .-14 ; 0x666 <__divsf3+0x14>
|
|
674: 55 23 and r21, r21
|
|
676: b1 f3 breq .-20 ; 0x664 <__divsf3+0x12>
|
|
678: 95 1b sub r25, r21
|
|
67a: 55 0b sbc r21, r21
|
|
67c: bb 27 eor r27, r27
|
|
67e: aa 27 eor r26, r26
|
|
680: 62 17 cp r22, r18
|
|
682: 73 07 cpc r23, r19
|
|
684: 84 07 cpc r24, r20
|
|
686: 38 f0 brcs .+14 ; 0x696 <__divsf3_pse+0x26>
|
|
688: 9f 5f subi r25, 0xFF ; 255
|
|
68a: 5f 4f sbci r21, 0xFF ; 255
|
|
68c: 22 0f add r18, r18
|
|
68e: 33 1f adc r19, r19
|
|
690: 44 1f adc r20, r20
|
|
692: aa 1f adc r26, r26
|
|
694: a9 f3 breq .-22 ; 0x680 <__divsf3_pse+0x10>
|
|
696: 33 d0 rcall .+102 ; 0x6fe <__divsf3_pse+0x8e>
|
|
698: 0e 2e mov r0, r30
|
|
69a: 3a f0 brmi .+14 ; 0x6aa <__divsf3_pse+0x3a>
|
|
69c: e0 e8 ldi r30, 0x80 ; 128
|
|
69e: 30 d0 rcall .+96 ; 0x700 <__divsf3_pse+0x90>
|
|
6a0: 91 50 subi r25, 0x01 ; 1
|
|
6a2: 50 40 sbci r21, 0x00 ; 0
|
|
6a4: e6 95 lsr r30
|
|
6a6: 00 1c adc r0, r0
|
|
6a8: ca f7 brpl .-14 ; 0x69c <__divsf3_pse+0x2c>
|
|
6aa: 29 d0 rcall .+82 ; 0x6fe <__divsf3_pse+0x8e>
|
|
6ac: fe 2f mov r31, r30
|
|
6ae: 27 d0 rcall .+78 ; 0x6fe <__divsf3_pse+0x8e>
|
|
6b0: 66 0f add r22, r22
|
|
6b2: 77 1f adc r23, r23
|
|
6b4: 88 1f adc r24, r24
|
|
6b6: bb 1f adc r27, r27
|
|
6b8: 26 17 cp r18, r22
|
|
6ba: 37 07 cpc r19, r23
|
|
6bc: 48 07 cpc r20, r24
|
|
6be: ab 07 cpc r26, r27
|
|
6c0: b0 e8 ldi r27, 0x80 ; 128
|
|
6c2: 09 f0 breq .+2 ; 0x6c6 <__divsf3_pse+0x56>
|
|
6c4: bb 0b sbc r27, r27
|
|
6c6: 80 2d mov r24, r0
|
|
6c8: bf 01 movw r22, r30
|
|
6ca: ff 27 eor r31, r31
|
|
6cc: 93 58 subi r25, 0x83 ; 131
|
|
6ce: 5f 4f sbci r21, 0xFF ; 255
|
|
6d0: 2a f0 brmi .+10 ; 0x6dc <__divsf3_pse+0x6c>
|
|
6d2: 9e 3f cpi r25, 0xFE ; 254
|
|
6d4: 51 05 cpc r21, r1
|
|
6d6: 68 f0 brcs .+26 ; 0x6f2 <__divsf3_pse+0x82>
|
|
6d8: 61 c0 rjmp .+194 ; 0x79c <__fp_inf>
|
|
6da: ab c0 rjmp .+342 ; 0x832 <__fp_szero>
|
|
6dc: 5f 3f cpi r21, 0xFF ; 255
|
|
6de: ec f3 brlt .-6 ; 0x6da <__divsf3_pse+0x6a>
|
|
6e0: 98 3e cpi r25, 0xE8 ; 232
|
|
6e2: dc f3 brlt .-10 ; 0x6da <__divsf3_pse+0x6a>
|
|
6e4: 86 95 lsr r24
|
|
6e6: 77 95 ror r23
|
|
6e8: 67 95 ror r22
|
|
6ea: b7 95 ror r27
|
|
6ec: f7 95 ror r31
|
|
6ee: 9f 5f subi r25, 0xFF ; 255
|
|
6f0: c9 f7 brne .-14 ; 0x6e4 <__divsf3_pse+0x74>
|
|
6f2: 88 0f add r24, r24
|
|
6f4: 91 1d adc r25, r1
|
|
6f6: 96 95 lsr r25
|
|
6f8: 87 95 ror r24
|
|
6fa: 97 f9 bld r25, 7
|
|
6fc: 08 95 ret
|
|
6fe: e1 e0 ldi r30, 0x01 ; 1
|
|
700: 66 0f add r22, r22
|
|
702: 77 1f adc r23, r23
|
|
704: 88 1f adc r24, r24
|
|
706: bb 1f adc r27, r27
|
|
708: 62 17 cp r22, r18
|
|
70a: 73 07 cpc r23, r19
|
|
70c: 84 07 cpc r24, r20
|
|
70e: ba 07 cpc r27, r26
|
|
710: 20 f0 brcs .+8 ; 0x71a <__divsf3_pse+0xaa>
|
|
712: 62 1b sub r22, r18
|
|
714: 73 0b sbc r23, r19
|
|
716: 84 0b sbc r24, r20
|
|
718: ba 0b sbc r27, r26
|
|
71a: ee 1f adc r30, r30
|
|
71c: 88 f7 brcc .-30 ; 0x700 <__divsf3_pse+0x90>
|
|
71e: e0 95 com r30
|
|
720: 08 95 ret
|
|
|
|
00000722 <__floatunsisf>:
|
|
722: e8 94 clt
|
|
724: 09 c0 rjmp .+18 ; 0x738 <__floatsisf+0x12>
|
|
|
|
00000726 <__floatsisf>:
|
|
726: 97 fb bst r25, 7
|
|
728: 3e f4 brtc .+14 ; 0x738 <__floatsisf+0x12>
|
|
72a: 90 95 com r25
|
|
72c: 80 95 com r24
|
|
72e: 70 95 com r23
|
|
730: 61 95 neg r22
|
|
732: 7f 4f sbci r23, 0xFF ; 255
|
|
734: 8f 4f sbci r24, 0xFF ; 255
|
|
736: 9f 4f sbci r25, 0xFF ; 255
|
|
738: 99 23 and r25, r25
|
|
73a: a9 f0 breq .+42 ; 0x766 <__floatsisf+0x40>
|
|
73c: f9 2f mov r31, r25
|
|
73e: 96 e9 ldi r25, 0x96 ; 150
|
|
740: bb 27 eor r27, r27
|
|
742: 93 95 inc r25
|
|
744: f6 95 lsr r31
|
|
746: 87 95 ror r24
|
|
748: 77 95 ror r23
|
|
74a: 67 95 ror r22
|
|
74c: b7 95 ror r27
|
|
74e: f1 11 cpse r31, r1
|
|
750: f8 cf rjmp .-16 ; 0x742 <__floatsisf+0x1c>
|
|
752: fa f4 brpl .+62 ; 0x792 <__floatsisf+0x6c>
|
|
754: bb 0f add r27, r27
|
|
756: 11 f4 brne .+4 ; 0x75c <__floatsisf+0x36>
|
|
758: 60 ff sbrs r22, 0
|
|
75a: 1b c0 rjmp .+54 ; 0x792 <__floatsisf+0x6c>
|
|
75c: 6f 5f subi r22, 0xFF ; 255
|
|
75e: 7f 4f sbci r23, 0xFF ; 255
|
|
760: 8f 4f sbci r24, 0xFF ; 255
|
|
762: 9f 4f sbci r25, 0xFF ; 255
|
|
764: 16 c0 rjmp .+44 ; 0x792 <__floatsisf+0x6c>
|
|
766: 88 23 and r24, r24
|
|
768: 11 f0 breq .+4 ; 0x76e <__floatsisf+0x48>
|
|
76a: 96 e9 ldi r25, 0x96 ; 150
|
|
76c: 11 c0 rjmp .+34 ; 0x790 <__floatsisf+0x6a>
|
|
76e: 77 23 and r23, r23
|
|
770: 21 f0 breq .+8 ; 0x77a <__floatsisf+0x54>
|
|
772: 9e e8 ldi r25, 0x8E ; 142
|
|
774: 87 2f mov r24, r23
|
|
776: 76 2f mov r23, r22
|
|
778: 05 c0 rjmp .+10 ; 0x784 <__floatsisf+0x5e>
|
|
77a: 66 23 and r22, r22
|
|
77c: 71 f0 breq .+28 ; 0x79a <__floatsisf+0x74>
|
|
77e: 96 e8 ldi r25, 0x86 ; 134
|
|
780: 86 2f mov r24, r22
|
|
782: 70 e0 ldi r23, 0x00 ; 0
|
|
784: 60 e0 ldi r22, 0x00 ; 0
|
|
786: 2a f0 brmi .+10 ; 0x792 <__floatsisf+0x6c>
|
|
788: 9a 95 dec r25
|
|
78a: 66 0f add r22, r22
|
|
78c: 77 1f adc r23, r23
|
|
78e: 88 1f adc r24, r24
|
|
790: da f7 brpl .-10 ; 0x788 <__floatsisf+0x62>
|
|
792: 88 0f add r24, r24
|
|
794: 96 95 lsr r25
|
|
796: 87 95 ror r24
|
|
798: 97 f9 bld r25, 7
|
|
79a: 08 95 ret
|
|
|
|
0000079c <__fp_inf>:
|
|
79c: 97 f9 bld r25, 7
|
|
79e: 9f 67 ori r25, 0x7F ; 127
|
|
7a0: 80 e8 ldi r24, 0x80 ; 128
|
|
7a2: 70 e0 ldi r23, 0x00 ; 0
|
|
7a4: 60 e0 ldi r22, 0x00 ; 0
|
|
7a6: 08 95 ret
|
|
|
|
000007a8 <__fp_nan>:
|
|
7a8: 9f ef ldi r25, 0xFF ; 255
|
|
7aa: 80 ec ldi r24, 0xC0 ; 192
|
|
7ac: 08 95 ret
|
|
|
|
000007ae <__fp_pscA>:
|
|
7ae: 00 24 eor r0, r0
|
|
7b0: 0a 94 dec r0
|
|
7b2: 16 16 cp r1, r22
|
|
7b4: 17 06 cpc r1, r23
|
|
7b6: 18 06 cpc r1, r24
|
|
7b8: 09 06 cpc r0, r25
|
|
7ba: 08 95 ret
|
|
|
|
000007bc <__fp_pscB>:
|
|
7bc: 00 24 eor r0, r0
|
|
7be: 0a 94 dec r0
|
|
7c0: 12 16 cp r1, r18
|
|
7c2: 13 06 cpc r1, r19
|
|
7c4: 14 06 cpc r1, r20
|
|
7c6: 05 06 cpc r0, r21
|
|
7c8: 08 95 ret
|
|
|
|
000007ca <__fp_round>:
|
|
7ca: 09 2e mov r0, r25
|
|
7cc: 03 94 inc r0
|
|
7ce: 00 0c add r0, r0
|
|
7d0: 11 f4 brne .+4 ; 0x7d6 <__fp_round+0xc>
|
|
7d2: 88 23 and r24, r24
|
|
7d4: 52 f0 brmi .+20 ; 0x7ea <__fp_round+0x20>
|
|
7d6: bb 0f add r27, r27
|
|
7d8: 40 f4 brcc .+16 ; 0x7ea <__fp_round+0x20>
|
|
7da: bf 2b or r27, r31
|
|
7dc: 11 f4 brne .+4 ; 0x7e2 <__fp_round+0x18>
|
|
7de: 60 ff sbrs r22, 0
|
|
7e0: 04 c0 rjmp .+8 ; 0x7ea <__fp_round+0x20>
|
|
7e2: 6f 5f subi r22, 0xFF ; 255
|
|
7e4: 7f 4f sbci r23, 0xFF ; 255
|
|
7e6: 8f 4f sbci r24, 0xFF ; 255
|
|
7e8: 9f 4f sbci r25, 0xFF ; 255
|
|
7ea: 08 95 ret
|
|
|
|
000007ec <__fp_split3>:
|
|
7ec: 57 fd sbrc r21, 7
|
|
7ee: 90 58 subi r25, 0x80 ; 128
|
|
7f0: 44 0f add r20, r20
|
|
7f2: 55 1f adc r21, r21
|
|
7f4: 59 f0 breq .+22 ; 0x80c <__fp_splitA+0x10>
|
|
7f6: 5f 3f cpi r21, 0xFF ; 255
|
|
7f8: 71 f0 breq .+28 ; 0x816 <__fp_splitA+0x1a>
|
|
7fa: 47 95 ror r20
|
|
|
|
000007fc <__fp_splitA>:
|
|
7fc: 88 0f add r24, r24
|
|
7fe: 97 fb bst r25, 7
|
|
800: 99 1f adc r25, r25
|
|
802: 61 f0 breq .+24 ; 0x81c <__fp_splitA+0x20>
|
|
804: 9f 3f cpi r25, 0xFF ; 255
|
|
806: 79 f0 breq .+30 ; 0x826 <__fp_splitA+0x2a>
|
|
808: 87 95 ror r24
|
|
80a: 08 95 ret
|
|
80c: 12 16 cp r1, r18
|
|
80e: 13 06 cpc r1, r19
|
|
810: 14 06 cpc r1, r20
|
|
812: 55 1f adc r21, r21
|
|
814: f2 cf rjmp .-28 ; 0x7fa <__fp_split3+0xe>
|
|
816: 46 95 lsr r20
|
|
818: f1 df rcall .-30 ; 0x7fc <__fp_splitA>
|
|
81a: 08 c0 rjmp .+16 ; 0x82c <__fp_splitA+0x30>
|
|
81c: 16 16 cp r1, r22
|
|
81e: 17 06 cpc r1, r23
|
|
820: 18 06 cpc r1, r24
|
|
822: 99 1f adc r25, r25
|
|
824: f1 cf rjmp .-30 ; 0x808 <__fp_splitA+0xc>
|
|
826: 86 95 lsr r24
|
|
828: 71 05 cpc r23, r1
|
|
82a: 61 05 cpc r22, r1
|
|
82c: 08 94 sec
|
|
82e: 08 95 ret
|
|
|
|
00000830 <__fp_zero>:
|
|
830: e8 94 clt
|
|
|
|
00000832 <__fp_szero>:
|
|
832: bb 27 eor r27, r27
|
|
834: 66 27 eor r22, r22
|
|
836: 77 27 eor r23, r23
|
|
838: cb 01 movw r24, r22
|
|
83a: 97 f9 bld r25, 7
|
|
83c: 08 95 ret
|
|
|
|
0000083e <__mulsf3>:
|
|
83e: 0b d0 rcall .+22 ; 0x856 <__mulsf3x>
|
|
840: c4 cf rjmp .-120 ; 0x7ca <__fp_round>
|
|
842: b5 df rcall .-150 ; 0x7ae <__fp_pscA>
|
|
844: 28 f0 brcs .+10 ; 0x850 <__mulsf3+0x12>
|
|
846: ba df rcall .-140 ; 0x7bc <__fp_pscB>
|
|
848: 18 f0 brcs .+6 ; 0x850 <__mulsf3+0x12>
|
|
84a: 95 23 and r25, r21
|
|
84c: 09 f0 breq .+2 ; 0x850 <__mulsf3+0x12>
|
|
84e: a6 cf rjmp .-180 ; 0x79c <__fp_inf>
|
|
850: ab cf rjmp .-170 ; 0x7a8 <__fp_nan>
|
|
852: 11 24 eor r1, r1
|
|
854: ee cf rjmp .-36 ; 0x832 <__fp_szero>
|
|
|
|
00000856 <__mulsf3x>:
|
|
856: ca df rcall .-108 ; 0x7ec <__fp_split3>
|
|
858: a0 f3 brcs .-24 ; 0x842 <__mulsf3+0x4>
|
|
|
|
0000085a <__mulsf3_pse>:
|
|
85a: 95 9f mul r25, r21
|
|
85c: d1 f3 breq .-12 ; 0x852 <__mulsf3+0x14>
|
|
85e: 95 0f add r25, r21
|
|
860: 50 e0 ldi r21, 0x00 ; 0
|
|
862: 55 1f adc r21, r21
|
|
864: 62 9f mul r22, r18
|
|
866: f0 01 movw r30, r0
|
|
868: 72 9f mul r23, r18
|
|
86a: bb 27 eor r27, r27
|
|
86c: f0 0d add r31, r0
|
|
86e: b1 1d adc r27, r1
|
|
870: 63 9f mul r22, r19
|
|
872: aa 27 eor r26, r26
|
|
874: f0 0d add r31, r0
|
|
876: b1 1d adc r27, r1
|
|
878: aa 1f adc r26, r26
|
|
87a: 64 9f mul r22, r20
|
|
87c: 66 27 eor r22, r22
|
|
87e: b0 0d add r27, r0
|
|
880: a1 1d adc r26, r1
|
|
882: 66 1f adc r22, r22
|
|
884: 82 9f mul r24, r18
|
|
886: 22 27 eor r18, r18
|
|
888: b0 0d add r27, r0
|
|
88a: a1 1d adc r26, r1
|
|
88c: 62 1f adc r22, r18
|
|
88e: 73 9f mul r23, r19
|
|
890: b0 0d add r27, r0
|
|
892: a1 1d adc r26, r1
|
|
894: 62 1f adc r22, r18
|
|
896: 83 9f mul r24, r19
|
|
898: a0 0d add r26, r0
|
|
89a: 61 1d adc r22, r1
|
|
89c: 22 1f adc r18, r18
|
|
89e: 74 9f mul r23, r20
|
|
8a0: 33 27 eor r19, r19
|
|
8a2: a0 0d add r26, r0
|
|
8a4: 61 1d adc r22, r1
|
|
8a6: 23 1f adc r18, r19
|
|
8a8: 84 9f mul r24, r20
|
|
8aa: 60 0d add r22, r0
|
|
8ac: 21 1d adc r18, r1
|
|
8ae: 82 2f mov r24, r18
|
|
8b0: 76 2f mov r23, r22
|
|
8b2: 6a 2f mov r22, r26
|
|
8b4: 11 24 eor r1, r1
|
|
8b6: 9f 57 subi r25, 0x7F ; 127
|
|
8b8: 50 40 sbci r21, 0x00 ; 0
|
|
8ba: 8a f0 brmi .+34 ; 0x8de <__mulsf3_pse+0x84>
|
|
8bc: e1 f0 breq .+56 ; 0x8f6 <__mulsf3_pse+0x9c>
|
|
8be: 88 23 and r24, r24
|
|
8c0: 4a f0 brmi .+18 ; 0x8d4 <__mulsf3_pse+0x7a>
|
|
8c2: ee 0f add r30, r30
|
|
8c4: ff 1f adc r31, r31
|
|
8c6: bb 1f adc r27, r27
|
|
8c8: 66 1f adc r22, r22
|
|
8ca: 77 1f adc r23, r23
|
|
8cc: 88 1f adc r24, r24
|
|
8ce: 91 50 subi r25, 0x01 ; 1
|
|
8d0: 50 40 sbci r21, 0x00 ; 0
|
|
8d2: a9 f7 brne .-22 ; 0x8be <__mulsf3_pse+0x64>
|
|
8d4: 9e 3f cpi r25, 0xFE ; 254
|
|
8d6: 51 05 cpc r21, r1
|
|
8d8: 70 f0 brcs .+28 ; 0x8f6 <__mulsf3_pse+0x9c>
|
|
8da: 60 cf rjmp .-320 ; 0x79c <__fp_inf>
|
|
8dc: aa cf rjmp .-172 ; 0x832 <__fp_szero>
|
|
8de: 5f 3f cpi r21, 0xFF ; 255
|
|
8e0: ec f3 brlt .-6 ; 0x8dc <__mulsf3_pse+0x82>
|
|
8e2: 98 3e cpi r25, 0xE8 ; 232
|
|
8e4: dc f3 brlt .-10 ; 0x8dc <__mulsf3_pse+0x82>
|
|
8e6: 86 95 lsr r24
|
|
8e8: 77 95 ror r23
|
|
8ea: 67 95 ror r22
|
|
8ec: b7 95 ror r27
|
|
8ee: f7 95 ror r31
|
|
8f0: e7 95 ror r30
|
|
8f2: 9f 5f subi r25, 0xFF ; 255
|
|
8f4: c1 f7 brne .-16 ; 0x8e6 <__mulsf3_pse+0x8c>
|
|
8f6: fe 2b or r31, r30
|
|
8f8: 88 0f add r24, r24
|
|
8fa: 91 1d adc r25, r1
|
|
8fc: 96 95 lsr r25
|
|
8fe: 87 95 ror r24
|
|
900: 97 f9 bld r25, 7
|
|
902: 08 95 ret
|
|
|
|
00000904 <dtostrf>:
|
|
904: ef 92 push r14
|
|
906: 0f 93 push r16
|
|
908: 1f 93 push r17
|
|
90a: cf 93 push r28
|
|
90c: df 93 push r29
|
|
90e: e8 01 movw r28, r16
|
|
910: 47 fd sbrc r20, 7
|
|
912: 02 c0 rjmp .+4 ; 0x918 <dtostrf+0x14>
|
|
914: 34 e0 ldi r19, 0x04 ; 4
|
|
916: 01 c0 rjmp .+2 ; 0x91a <dtostrf+0x16>
|
|
918: 34 e1 ldi r19, 0x14 ; 20
|
|
91a: 04 2e mov r0, r20
|
|
91c: 00 0c add r0, r0
|
|
91e: 55 0b sbc r21, r21
|
|
920: 57 ff sbrs r21, 7
|
|
922: 03 c0 rjmp .+6 ; 0x92a <dtostrf+0x26>
|
|
924: 51 95 neg r21
|
|
926: 41 95 neg r20
|
|
928: 51 09 sbc r21, r1
|
|
92a: e3 2e mov r14, r19
|
|
92c: 02 2f mov r16, r18
|
|
92e: 24 2f mov r18, r20
|
|
930: ae 01 movw r20, r28
|
|
932: 40 d2 rcall .+1152 ; 0xdb4 <dtoa_prf>
|
|
934: ce 01 movw r24, r28
|
|
936: df 91 pop r29
|
|
938: cf 91 pop r28
|
|
93a: 1f 91 pop r17
|
|
93c: 0f 91 pop r16
|
|
93e: ef 90 pop r14
|
|
940: 08 95 ret
|
|
|
|
00000942 <snprintf>:
|
|
942: 0f 93 push r16
|
|
944: 1f 93 push r17
|
|
946: cf 93 push r28
|
|
948: df 93 push r29
|
|
94a: cd b7 in r28, 0x3d ; 61
|
|
94c: de b7 in r29, 0x3e ; 62
|
|
94e: 2e 97 sbiw r28, 0x0e ; 14
|
|
950: 0f b6 in r0, 0x3f ; 63
|
|
952: f8 94 cli
|
|
954: de bf out 0x3e, r29 ; 62
|
|
956: 0f be out 0x3f, r0 ; 63
|
|
958: cd bf out 0x3d, r28 ; 61
|
|
95a: 0d 89 ldd r16, Y+21 ; 0x15
|
|
95c: 1e 89 ldd r17, Y+22 ; 0x16
|
|
95e: 8f 89 ldd r24, Y+23 ; 0x17
|
|
960: 98 8d ldd r25, Y+24 ; 0x18
|
|
962: 26 e0 ldi r18, 0x06 ; 6
|
|
964: 2c 83 std Y+4, r18 ; 0x04
|
|
966: 1a 83 std Y+2, r17 ; 0x02
|
|
968: 09 83 std Y+1, r16 ; 0x01
|
|
96a: 97 ff sbrs r25, 7
|
|
96c: 02 c0 rjmp .+4 ; 0x972 <snprintf+0x30>
|
|
96e: 80 e0 ldi r24, 0x00 ; 0
|
|
970: 90 e8 ldi r25, 0x80 ; 128
|
|
972: 01 97 sbiw r24, 0x01 ; 1
|
|
974: 9e 83 std Y+6, r25 ; 0x06
|
|
976: 8d 83 std Y+5, r24 ; 0x05
|
|
978: ae 01 movw r20, r28
|
|
97a: 45 5e subi r20, 0xE5 ; 229
|
|
97c: 5f 4f sbci r21, 0xFF ; 255
|
|
97e: 69 8d ldd r22, Y+25 ; 0x19
|
|
980: 7a 8d ldd r23, Y+26 ; 0x1a
|
|
982: ce 01 movw r24, r28
|
|
984: 01 96 adiw r24, 0x01 ; 1
|
|
986: 19 d0 rcall .+50 ; 0x9ba <vfprintf>
|
|
988: 4d 81 ldd r20, Y+5 ; 0x05
|
|
98a: 5e 81 ldd r21, Y+6 ; 0x06
|
|
98c: 57 fd sbrc r21, 7
|
|
98e: 0a c0 rjmp .+20 ; 0x9a4 <snprintf+0x62>
|
|
990: 2f 81 ldd r18, Y+7 ; 0x07
|
|
992: 38 85 ldd r19, Y+8 ; 0x08
|
|
994: 42 17 cp r20, r18
|
|
996: 53 07 cpc r21, r19
|
|
998: 0c f4 brge .+2 ; 0x99c <snprintf+0x5a>
|
|
99a: 9a 01 movw r18, r20
|
|
99c: f8 01 movw r30, r16
|
|
99e: e2 0f add r30, r18
|
|
9a0: f3 1f adc r31, r19
|
|
9a2: 10 82 st Z, r1
|
|
9a4: 2e 96 adiw r28, 0x0e ; 14
|
|
9a6: 0f b6 in r0, 0x3f ; 63
|
|
9a8: f8 94 cli
|
|
9aa: de bf out 0x3e, r29 ; 62
|
|
9ac: 0f be out 0x3f, r0 ; 63
|
|
9ae: cd bf out 0x3d, r28 ; 61
|
|
9b0: df 91 pop r29
|
|
9b2: cf 91 pop r28
|
|
9b4: 1f 91 pop r17
|
|
9b6: 0f 91 pop r16
|
|
9b8: 08 95 ret
|
|
|
|
000009ba <vfprintf>:
|
|
9ba: 2f 92 push r2
|
|
9bc: 3f 92 push r3
|
|
9be: 4f 92 push r4
|
|
9c0: 5f 92 push r5
|
|
9c2: 6f 92 push r6
|
|
9c4: 7f 92 push r7
|
|
9c6: 8f 92 push r8
|
|
9c8: 9f 92 push r9
|
|
9ca: af 92 push r10
|
|
9cc: bf 92 push r11
|
|
9ce: cf 92 push r12
|
|
9d0: df 92 push r13
|
|
9d2: ef 92 push r14
|
|
9d4: ff 92 push r15
|
|
9d6: 0f 93 push r16
|
|
9d8: 1f 93 push r17
|
|
9da: cf 93 push r28
|
|
9dc: df 93 push r29
|
|
9de: cd b7 in r28, 0x3d ; 61
|
|
9e0: de b7 in r29, 0x3e ; 62
|
|
9e2: 2b 97 sbiw r28, 0x0b ; 11
|
|
9e4: 0f b6 in r0, 0x3f ; 63
|
|
9e6: f8 94 cli
|
|
9e8: de bf out 0x3e, r29 ; 62
|
|
9ea: 0f be out 0x3f, r0 ; 63
|
|
9ec: cd bf out 0x3d, r28 ; 61
|
|
9ee: 6c 01 movw r12, r24
|
|
9f0: 7b 01 movw r14, r22
|
|
9f2: 8a 01 movw r16, r20
|
|
9f4: fc 01 movw r30, r24
|
|
9f6: 17 82 std Z+7, r1 ; 0x07
|
|
9f8: 16 82 std Z+6, r1 ; 0x06
|
|
9fa: 83 81 ldd r24, Z+3 ; 0x03
|
|
9fc: 81 ff sbrs r24, 1
|
|
9fe: bf c1 rjmp .+894 ; 0xd7e <vfprintf+0x3c4>
|
|
a00: ce 01 movw r24, r28
|
|
a02: 01 96 adiw r24, 0x01 ; 1
|
|
a04: 3c 01 movw r6, r24
|
|
a06: f6 01 movw r30, r12
|
|
a08: 93 81 ldd r25, Z+3 ; 0x03
|
|
a0a: f7 01 movw r30, r14
|
|
a0c: 93 fd sbrc r25, 3
|
|
a0e: 85 91 lpm r24, Z+
|
|
a10: 93 ff sbrs r25, 3
|
|
a12: 81 91 ld r24, Z+
|
|
a14: 7f 01 movw r14, r30
|
|
a16: 88 23 and r24, r24
|
|
a18: 09 f4 brne .+2 ; 0xa1c <vfprintf+0x62>
|
|
a1a: ad c1 rjmp .+858 ; 0xd76 <vfprintf+0x3bc>
|
|
a1c: 85 32 cpi r24, 0x25 ; 37
|
|
a1e: 39 f4 brne .+14 ; 0xa2e <vfprintf+0x74>
|
|
a20: 93 fd sbrc r25, 3
|
|
a22: 85 91 lpm r24, Z+
|
|
a24: 93 ff sbrs r25, 3
|
|
a26: 81 91 ld r24, Z+
|
|
a28: 7f 01 movw r14, r30
|
|
a2a: 85 32 cpi r24, 0x25 ; 37
|
|
a2c: 21 f4 brne .+8 ; 0xa36 <vfprintf+0x7c>
|
|
a2e: b6 01 movw r22, r12
|
|
a30: 90 e0 ldi r25, 0x00 ; 0
|
|
a32: 24 d4 rcall .+2120 ; 0x127c <fputc>
|
|
a34: e8 cf rjmp .-48 ; 0xa06 <vfprintf+0x4c>
|
|
a36: 91 2c mov r9, r1
|
|
a38: 21 2c mov r2, r1
|
|
a3a: 31 2c mov r3, r1
|
|
a3c: ff e1 ldi r31, 0x1F ; 31
|
|
a3e: f3 15 cp r31, r3
|
|
a40: d8 f0 brcs .+54 ; 0xa78 <vfprintf+0xbe>
|
|
a42: 8b 32 cpi r24, 0x2B ; 43
|
|
a44: 79 f0 breq .+30 ; 0xa64 <vfprintf+0xaa>
|
|
a46: 38 f4 brcc .+14 ; 0xa56 <vfprintf+0x9c>
|
|
a48: 80 32 cpi r24, 0x20 ; 32
|
|
a4a: 79 f0 breq .+30 ; 0xa6a <vfprintf+0xb0>
|
|
a4c: 83 32 cpi r24, 0x23 ; 35
|
|
a4e: a1 f4 brne .+40 ; 0xa78 <vfprintf+0xbe>
|
|
a50: 23 2d mov r18, r3
|
|
a52: 20 61 ori r18, 0x10 ; 16
|
|
a54: 1d c0 rjmp .+58 ; 0xa90 <vfprintf+0xd6>
|
|
a56: 8d 32 cpi r24, 0x2D ; 45
|
|
a58: 61 f0 breq .+24 ; 0xa72 <vfprintf+0xb8>
|
|
a5a: 80 33 cpi r24, 0x30 ; 48
|
|
a5c: 69 f4 brne .+26 ; 0xa78 <vfprintf+0xbe>
|
|
a5e: 23 2d mov r18, r3
|
|
a60: 21 60 ori r18, 0x01 ; 1
|
|
a62: 16 c0 rjmp .+44 ; 0xa90 <vfprintf+0xd6>
|
|
a64: 83 2d mov r24, r3
|
|
a66: 82 60 ori r24, 0x02 ; 2
|
|
a68: 38 2e mov r3, r24
|
|
a6a: e3 2d mov r30, r3
|
|
a6c: e4 60 ori r30, 0x04 ; 4
|
|
a6e: 3e 2e mov r3, r30
|
|
a70: 2a c0 rjmp .+84 ; 0xac6 <vfprintf+0x10c>
|
|
a72: f3 2d mov r31, r3
|
|
a74: f8 60 ori r31, 0x08 ; 8
|
|
a76: 1d c0 rjmp .+58 ; 0xab2 <vfprintf+0xf8>
|
|
a78: 37 fc sbrc r3, 7
|
|
a7a: 2d c0 rjmp .+90 ; 0xad6 <vfprintf+0x11c>
|
|
a7c: 20 ed ldi r18, 0xD0 ; 208
|
|
a7e: 28 0f add r18, r24
|
|
a80: 2a 30 cpi r18, 0x0A ; 10
|
|
a82: 40 f0 brcs .+16 ; 0xa94 <vfprintf+0xda>
|
|
a84: 8e 32 cpi r24, 0x2E ; 46
|
|
a86: b9 f4 brne .+46 ; 0xab6 <vfprintf+0xfc>
|
|
a88: 36 fc sbrc r3, 6
|
|
a8a: 75 c1 rjmp .+746 ; 0xd76 <vfprintf+0x3bc>
|
|
a8c: 23 2d mov r18, r3
|
|
a8e: 20 64 ori r18, 0x40 ; 64
|
|
a90: 32 2e mov r3, r18
|
|
a92: 19 c0 rjmp .+50 ; 0xac6 <vfprintf+0x10c>
|
|
a94: 36 fe sbrs r3, 6
|
|
a96: 06 c0 rjmp .+12 ; 0xaa4 <vfprintf+0xea>
|
|
a98: 8a e0 ldi r24, 0x0A ; 10
|
|
a9a: 98 9e mul r9, r24
|
|
a9c: 20 0d add r18, r0
|
|
a9e: 11 24 eor r1, r1
|
|
aa0: 92 2e mov r9, r18
|
|
aa2: 11 c0 rjmp .+34 ; 0xac6 <vfprintf+0x10c>
|
|
aa4: ea e0 ldi r30, 0x0A ; 10
|
|
aa6: 2e 9e mul r2, r30
|
|
aa8: 20 0d add r18, r0
|
|
aaa: 11 24 eor r1, r1
|
|
aac: 22 2e mov r2, r18
|
|
aae: f3 2d mov r31, r3
|
|
ab0: f0 62 ori r31, 0x20 ; 32
|
|
ab2: 3f 2e mov r3, r31
|
|
ab4: 08 c0 rjmp .+16 ; 0xac6 <vfprintf+0x10c>
|
|
ab6: 8c 36 cpi r24, 0x6C ; 108
|
|
ab8: 21 f4 brne .+8 ; 0xac2 <vfprintf+0x108>
|
|
aba: 83 2d mov r24, r3
|
|
abc: 80 68 ori r24, 0x80 ; 128
|
|
abe: 38 2e mov r3, r24
|
|
ac0: 02 c0 rjmp .+4 ; 0xac6 <vfprintf+0x10c>
|
|
ac2: 88 36 cpi r24, 0x68 ; 104
|
|
ac4: 41 f4 brne .+16 ; 0xad6 <vfprintf+0x11c>
|
|
ac6: f7 01 movw r30, r14
|
|
ac8: 93 fd sbrc r25, 3
|
|
aca: 85 91 lpm r24, Z+
|
|
acc: 93 ff sbrs r25, 3
|
|
ace: 81 91 ld r24, Z+
|
|
ad0: 7f 01 movw r14, r30
|
|
ad2: 81 11 cpse r24, r1
|
|
ad4: b3 cf rjmp .-154 ; 0xa3c <vfprintf+0x82>
|
|
ad6: 98 2f mov r25, r24
|
|
ad8: 9f 7d andi r25, 0xDF ; 223
|
|
ada: 95 54 subi r25, 0x45 ; 69
|
|
adc: 93 30 cpi r25, 0x03 ; 3
|
|
ade: 28 f4 brcc .+10 ; 0xaea <vfprintf+0x130>
|
|
ae0: 0c 5f subi r16, 0xFC ; 252
|
|
ae2: 1f 4f sbci r17, 0xFF ; 255
|
|
ae4: 9f e3 ldi r25, 0x3F ; 63
|
|
ae6: 99 83 std Y+1, r25 ; 0x01
|
|
ae8: 0d c0 rjmp .+26 ; 0xb04 <vfprintf+0x14a>
|
|
aea: 83 36 cpi r24, 0x63 ; 99
|
|
aec: 31 f0 breq .+12 ; 0xafa <vfprintf+0x140>
|
|
aee: 83 37 cpi r24, 0x73 ; 115
|
|
af0: 71 f0 breq .+28 ; 0xb0e <vfprintf+0x154>
|
|
af2: 83 35 cpi r24, 0x53 ; 83
|
|
af4: 09 f0 breq .+2 ; 0xaf8 <vfprintf+0x13e>
|
|
af6: 55 c0 rjmp .+170 ; 0xba2 <vfprintf+0x1e8>
|
|
af8: 20 c0 rjmp .+64 ; 0xb3a <vfprintf+0x180>
|
|
afa: f8 01 movw r30, r16
|
|
afc: 80 81 ld r24, Z
|
|
afe: 89 83 std Y+1, r24 ; 0x01
|
|
b00: 0e 5f subi r16, 0xFE ; 254
|
|
b02: 1f 4f sbci r17, 0xFF ; 255
|
|
b04: 88 24 eor r8, r8
|
|
b06: 83 94 inc r8
|
|
b08: 91 2c mov r9, r1
|
|
b0a: 53 01 movw r10, r6
|
|
b0c: 12 c0 rjmp .+36 ; 0xb32 <vfprintf+0x178>
|
|
b0e: 28 01 movw r4, r16
|
|
b10: f2 e0 ldi r31, 0x02 ; 2
|
|
b12: 4f 0e add r4, r31
|
|
b14: 51 1c adc r5, r1
|
|
b16: f8 01 movw r30, r16
|
|
b18: a0 80 ld r10, Z
|
|
b1a: b1 80 ldd r11, Z+1 ; 0x01
|
|
b1c: 36 fe sbrs r3, 6
|
|
b1e: 03 c0 rjmp .+6 ; 0xb26 <vfprintf+0x16c>
|
|
b20: 69 2d mov r22, r9
|
|
b22: 70 e0 ldi r23, 0x00 ; 0
|
|
b24: 02 c0 rjmp .+4 ; 0xb2a <vfprintf+0x170>
|
|
b26: 6f ef ldi r22, 0xFF ; 255
|
|
b28: 7f ef ldi r23, 0xFF ; 255
|
|
b2a: c5 01 movw r24, r10
|
|
b2c: 9c d3 rcall .+1848 ; 0x1266 <strnlen>
|
|
b2e: 4c 01 movw r8, r24
|
|
b30: 82 01 movw r16, r4
|
|
b32: f3 2d mov r31, r3
|
|
b34: ff 77 andi r31, 0x7F ; 127
|
|
b36: 3f 2e mov r3, r31
|
|
b38: 15 c0 rjmp .+42 ; 0xb64 <vfprintf+0x1aa>
|
|
b3a: 28 01 movw r4, r16
|
|
b3c: 22 e0 ldi r18, 0x02 ; 2
|
|
b3e: 42 0e add r4, r18
|
|
b40: 51 1c adc r5, r1
|
|
b42: f8 01 movw r30, r16
|
|
b44: a0 80 ld r10, Z
|
|
b46: b1 80 ldd r11, Z+1 ; 0x01
|
|
b48: 36 fe sbrs r3, 6
|
|
b4a: 03 c0 rjmp .+6 ; 0xb52 <vfprintf+0x198>
|
|
b4c: 69 2d mov r22, r9
|
|
b4e: 70 e0 ldi r23, 0x00 ; 0
|
|
b50: 02 c0 rjmp .+4 ; 0xb56 <vfprintf+0x19c>
|
|
b52: 6f ef ldi r22, 0xFF ; 255
|
|
b54: 7f ef ldi r23, 0xFF ; 255
|
|
b56: c5 01 movw r24, r10
|
|
b58: 7b d3 rcall .+1782 ; 0x1250 <strnlen_P>
|
|
b5a: 4c 01 movw r8, r24
|
|
b5c: f3 2d mov r31, r3
|
|
b5e: f0 68 ori r31, 0x80 ; 128
|
|
b60: 3f 2e mov r3, r31
|
|
b62: 82 01 movw r16, r4
|
|
b64: 33 fc sbrc r3, 3
|
|
b66: 19 c0 rjmp .+50 ; 0xb9a <vfprintf+0x1e0>
|
|
b68: 82 2d mov r24, r2
|
|
b6a: 90 e0 ldi r25, 0x00 ; 0
|
|
b6c: 88 16 cp r8, r24
|
|
b6e: 99 06 cpc r9, r25
|
|
b70: a0 f4 brcc .+40 ; 0xb9a <vfprintf+0x1e0>
|
|
b72: b6 01 movw r22, r12
|
|
b74: 80 e2 ldi r24, 0x20 ; 32
|
|
b76: 90 e0 ldi r25, 0x00 ; 0
|
|
b78: 81 d3 rcall .+1794 ; 0x127c <fputc>
|
|
b7a: 2a 94 dec r2
|
|
b7c: f5 cf rjmp .-22 ; 0xb68 <vfprintf+0x1ae>
|
|
b7e: f5 01 movw r30, r10
|
|
b80: 37 fc sbrc r3, 7
|
|
b82: 85 91 lpm r24, Z+
|
|
b84: 37 fe sbrs r3, 7
|
|
b86: 81 91 ld r24, Z+
|
|
b88: 5f 01 movw r10, r30
|
|
b8a: b6 01 movw r22, r12
|
|
b8c: 90 e0 ldi r25, 0x00 ; 0
|
|
b8e: 76 d3 rcall .+1772 ; 0x127c <fputc>
|
|
b90: 21 10 cpse r2, r1
|
|
b92: 2a 94 dec r2
|
|
b94: 21 e0 ldi r18, 0x01 ; 1
|
|
b96: 82 1a sub r8, r18
|
|
b98: 91 08 sbc r9, r1
|
|
b9a: 81 14 cp r8, r1
|
|
b9c: 91 04 cpc r9, r1
|
|
b9e: 79 f7 brne .-34 ; 0xb7e <vfprintf+0x1c4>
|
|
ba0: e1 c0 rjmp .+450 ; 0xd64 <vfprintf+0x3aa>
|
|
ba2: 84 36 cpi r24, 0x64 ; 100
|
|
ba4: 11 f0 breq .+4 ; 0xbaa <vfprintf+0x1f0>
|
|
ba6: 89 36 cpi r24, 0x69 ; 105
|
|
ba8: 39 f5 brne .+78 ; 0xbf8 <vfprintf+0x23e>
|
|
baa: f8 01 movw r30, r16
|
|
bac: 37 fe sbrs r3, 7
|
|
bae: 07 c0 rjmp .+14 ; 0xbbe <vfprintf+0x204>
|
|
bb0: 60 81 ld r22, Z
|
|
bb2: 71 81 ldd r23, Z+1 ; 0x01
|
|
bb4: 82 81 ldd r24, Z+2 ; 0x02
|
|
bb6: 93 81 ldd r25, Z+3 ; 0x03
|
|
bb8: 0c 5f subi r16, 0xFC ; 252
|
|
bba: 1f 4f sbci r17, 0xFF ; 255
|
|
bbc: 08 c0 rjmp .+16 ; 0xbce <vfprintf+0x214>
|
|
bbe: 60 81 ld r22, Z
|
|
bc0: 71 81 ldd r23, Z+1 ; 0x01
|
|
bc2: 07 2e mov r0, r23
|
|
bc4: 00 0c add r0, r0
|
|
bc6: 88 0b sbc r24, r24
|
|
bc8: 99 0b sbc r25, r25
|
|
bca: 0e 5f subi r16, 0xFE ; 254
|
|
bcc: 1f 4f sbci r17, 0xFF ; 255
|
|
bce: f3 2d mov r31, r3
|
|
bd0: ff 76 andi r31, 0x6F ; 111
|
|
bd2: 3f 2e mov r3, r31
|
|
bd4: 97 ff sbrs r25, 7
|
|
bd6: 09 c0 rjmp .+18 ; 0xbea <vfprintf+0x230>
|
|
bd8: 90 95 com r25
|
|
bda: 80 95 com r24
|
|
bdc: 70 95 com r23
|
|
bde: 61 95 neg r22
|
|
be0: 7f 4f sbci r23, 0xFF ; 255
|
|
be2: 8f 4f sbci r24, 0xFF ; 255
|
|
be4: 9f 4f sbci r25, 0xFF ; 255
|
|
be6: f0 68 ori r31, 0x80 ; 128
|
|
be8: 3f 2e mov r3, r31
|
|
bea: 2a e0 ldi r18, 0x0A ; 10
|
|
bec: 30 e0 ldi r19, 0x00 ; 0
|
|
bee: a3 01 movw r20, r6
|
|
bf0: 81 d3 rcall .+1794 ; 0x12f4 <__ultoa_invert>
|
|
bf2: 88 2e mov r8, r24
|
|
bf4: 86 18 sub r8, r6
|
|
bf6: 44 c0 rjmp .+136 ; 0xc80 <vfprintf+0x2c6>
|
|
bf8: 85 37 cpi r24, 0x75 ; 117
|
|
bfa: 31 f4 brne .+12 ; 0xc08 <vfprintf+0x24e>
|
|
bfc: 23 2d mov r18, r3
|
|
bfe: 2f 7e andi r18, 0xEF ; 239
|
|
c00: b2 2e mov r11, r18
|
|
c02: 2a e0 ldi r18, 0x0A ; 10
|
|
c04: 30 e0 ldi r19, 0x00 ; 0
|
|
c06: 25 c0 rjmp .+74 ; 0xc52 <vfprintf+0x298>
|
|
c08: 93 2d mov r25, r3
|
|
c0a: 99 7f andi r25, 0xF9 ; 249
|
|
c0c: b9 2e mov r11, r25
|
|
c0e: 8f 36 cpi r24, 0x6F ; 111
|
|
c10: c1 f0 breq .+48 ; 0xc42 <vfprintf+0x288>
|
|
c12: 18 f4 brcc .+6 ; 0xc1a <vfprintf+0x260>
|
|
c14: 88 35 cpi r24, 0x58 ; 88
|
|
c16: 79 f0 breq .+30 ; 0xc36 <vfprintf+0x27c>
|
|
c18: ae c0 rjmp .+348 ; 0xd76 <vfprintf+0x3bc>
|
|
c1a: 80 37 cpi r24, 0x70 ; 112
|
|
c1c: 19 f0 breq .+6 ; 0xc24 <vfprintf+0x26a>
|
|
c1e: 88 37 cpi r24, 0x78 ; 120
|
|
c20: 21 f0 breq .+8 ; 0xc2a <vfprintf+0x270>
|
|
c22: a9 c0 rjmp .+338 ; 0xd76 <vfprintf+0x3bc>
|
|
c24: e9 2f mov r30, r25
|
|
c26: e0 61 ori r30, 0x10 ; 16
|
|
c28: be 2e mov r11, r30
|
|
c2a: b4 fe sbrs r11, 4
|
|
c2c: 0d c0 rjmp .+26 ; 0xc48 <vfprintf+0x28e>
|
|
c2e: fb 2d mov r31, r11
|
|
c30: f4 60 ori r31, 0x04 ; 4
|
|
c32: bf 2e mov r11, r31
|
|
c34: 09 c0 rjmp .+18 ; 0xc48 <vfprintf+0x28e>
|
|
c36: 34 fe sbrs r3, 4
|
|
c38: 0a c0 rjmp .+20 ; 0xc4e <vfprintf+0x294>
|
|
c3a: 29 2f mov r18, r25
|
|
c3c: 26 60 ori r18, 0x06 ; 6
|
|
c3e: b2 2e mov r11, r18
|
|
c40: 06 c0 rjmp .+12 ; 0xc4e <vfprintf+0x294>
|
|
c42: 28 e0 ldi r18, 0x08 ; 8
|
|
c44: 30 e0 ldi r19, 0x00 ; 0
|
|
c46: 05 c0 rjmp .+10 ; 0xc52 <vfprintf+0x298>
|
|
c48: 20 e1 ldi r18, 0x10 ; 16
|
|
c4a: 30 e0 ldi r19, 0x00 ; 0
|
|
c4c: 02 c0 rjmp .+4 ; 0xc52 <vfprintf+0x298>
|
|
c4e: 20 e1 ldi r18, 0x10 ; 16
|
|
c50: 32 e0 ldi r19, 0x02 ; 2
|
|
c52: f8 01 movw r30, r16
|
|
c54: b7 fe sbrs r11, 7
|
|
c56: 07 c0 rjmp .+14 ; 0xc66 <vfprintf+0x2ac>
|
|
c58: 60 81 ld r22, Z
|
|
c5a: 71 81 ldd r23, Z+1 ; 0x01
|
|
c5c: 82 81 ldd r24, Z+2 ; 0x02
|
|
c5e: 93 81 ldd r25, Z+3 ; 0x03
|
|
c60: 0c 5f subi r16, 0xFC ; 252
|
|
c62: 1f 4f sbci r17, 0xFF ; 255
|
|
c64: 06 c0 rjmp .+12 ; 0xc72 <vfprintf+0x2b8>
|
|
c66: 60 81 ld r22, Z
|
|
c68: 71 81 ldd r23, Z+1 ; 0x01
|
|
c6a: 80 e0 ldi r24, 0x00 ; 0
|
|
c6c: 90 e0 ldi r25, 0x00 ; 0
|
|
c6e: 0e 5f subi r16, 0xFE ; 254
|
|
c70: 1f 4f sbci r17, 0xFF ; 255
|
|
c72: a3 01 movw r20, r6
|
|
c74: 3f d3 rcall .+1662 ; 0x12f4 <__ultoa_invert>
|
|
c76: 88 2e mov r8, r24
|
|
c78: 86 18 sub r8, r6
|
|
c7a: fb 2d mov r31, r11
|
|
c7c: ff 77 andi r31, 0x7F ; 127
|
|
c7e: 3f 2e mov r3, r31
|
|
c80: 36 fe sbrs r3, 6
|
|
c82: 0d c0 rjmp .+26 ; 0xc9e <vfprintf+0x2e4>
|
|
c84: 23 2d mov r18, r3
|
|
c86: 2e 7f andi r18, 0xFE ; 254
|
|
c88: a2 2e mov r10, r18
|
|
c8a: 89 14 cp r8, r9
|
|
c8c: 58 f4 brcc .+22 ; 0xca4 <vfprintf+0x2ea>
|
|
c8e: 34 fe sbrs r3, 4
|
|
c90: 0b c0 rjmp .+22 ; 0xca8 <vfprintf+0x2ee>
|
|
c92: 32 fc sbrc r3, 2
|
|
c94: 09 c0 rjmp .+18 ; 0xca8 <vfprintf+0x2ee>
|
|
c96: 83 2d mov r24, r3
|
|
c98: 8e 7e andi r24, 0xEE ; 238
|
|
c9a: a8 2e mov r10, r24
|
|
c9c: 05 c0 rjmp .+10 ; 0xca8 <vfprintf+0x2ee>
|
|
c9e: b8 2c mov r11, r8
|
|
ca0: a3 2c mov r10, r3
|
|
ca2: 03 c0 rjmp .+6 ; 0xcaa <vfprintf+0x2f0>
|
|
ca4: b8 2c mov r11, r8
|
|
ca6: 01 c0 rjmp .+2 ; 0xcaa <vfprintf+0x2f0>
|
|
ca8: b9 2c mov r11, r9
|
|
caa: a4 fe sbrs r10, 4
|
|
cac: 0f c0 rjmp .+30 ; 0xccc <vfprintf+0x312>
|
|
cae: fe 01 movw r30, r28
|
|
cb0: e8 0d add r30, r8
|
|
cb2: f1 1d adc r31, r1
|
|
cb4: 80 81 ld r24, Z
|
|
cb6: 80 33 cpi r24, 0x30 ; 48
|
|
cb8: 21 f4 brne .+8 ; 0xcc2 <vfprintf+0x308>
|
|
cba: 9a 2d mov r25, r10
|
|
cbc: 99 7e andi r25, 0xE9 ; 233
|
|
cbe: a9 2e mov r10, r25
|
|
cc0: 09 c0 rjmp .+18 ; 0xcd4 <vfprintf+0x31a>
|
|
cc2: a2 fe sbrs r10, 2
|
|
cc4: 06 c0 rjmp .+12 ; 0xcd2 <vfprintf+0x318>
|
|
cc6: b3 94 inc r11
|
|
cc8: b3 94 inc r11
|
|
cca: 04 c0 rjmp .+8 ; 0xcd4 <vfprintf+0x31a>
|
|
ccc: 8a 2d mov r24, r10
|
|
cce: 86 78 andi r24, 0x86 ; 134
|
|
cd0: 09 f0 breq .+2 ; 0xcd4 <vfprintf+0x31a>
|
|
cd2: b3 94 inc r11
|
|
cd4: a3 fc sbrc r10, 3
|
|
cd6: 10 c0 rjmp .+32 ; 0xcf8 <vfprintf+0x33e>
|
|
cd8: a0 fe sbrs r10, 0
|
|
cda: 06 c0 rjmp .+12 ; 0xce8 <vfprintf+0x32e>
|
|
cdc: b2 14 cp r11, r2
|
|
cde: 80 f4 brcc .+32 ; 0xd00 <vfprintf+0x346>
|
|
ce0: 28 0c add r2, r8
|
|
ce2: 92 2c mov r9, r2
|
|
ce4: 9b 18 sub r9, r11
|
|
ce6: 0d c0 rjmp .+26 ; 0xd02 <vfprintf+0x348>
|
|
ce8: b2 14 cp r11, r2
|
|
cea: 58 f4 brcc .+22 ; 0xd02 <vfprintf+0x348>
|
|
cec: b6 01 movw r22, r12
|
|
cee: 80 e2 ldi r24, 0x20 ; 32
|
|
cf0: 90 e0 ldi r25, 0x00 ; 0
|
|
cf2: c4 d2 rcall .+1416 ; 0x127c <fputc>
|
|
cf4: b3 94 inc r11
|
|
cf6: f8 cf rjmp .-16 ; 0xce8 <vfprintf+0x32e>
|
|
cf8: b2 14 cp r11, r2
|
|
cfa: 18 f4 brcc .+6 ; 0xd02 <vfprintf+0x348>
|
|
cfc: 2b 18 sub r2, r11
|
|
cfe: 02 c0 rjmp .+4 ; 0xd04 <vfprintf+0x34a>
|
|
d00: 98 2c mov r9, r8
|
|
d02: 21 2c mov r2, r1
|
|
d04: a4 fe sbrs r10, 4
|
|
d06: 0f c0 rjmp .+30 ; 0xd26 <vfprintf+0x36c>
|
|
d08: b6 01 movw r22, r12
|
|
d0a: 80 e3 ldi r24, 0x30 ; 48
|
|
d0c: 90 e0 ldi r25, 0x00 ; 0
|
|
d0e: b6 d2 rcall .+1388 ; 0x127c <fputc>
|
|
d10: a2 fe sbrs r10, 2
|
|
d12: 16 c0 rjmp .+44 ; 0xd40 <vfprintf+0x386>
|
|
d14: a1 fc sbrc r10, 1
|
|
d16: 03 c0 rjmp .+6 ; 0xd1e <vfprintf+0x364>
|
|
d18: 88 e7 ldi r24, 0x78 ; 120
|
|
d1a: 90 e0 ldi r25, 0x00 ; 0
|
|
d1c: 02 c0 rjmp .+4 ; 0xd22 <vfprintf+0x368>
|
|
d1e: 88 e5 ldi r24, 0x58 ; 88
|
|
d20: 90 e0 ldi r25, 0x00 ; 0
|
|
d22: b6 01 movw r22, r12
|
|
d24: 0c c0 rjmp .+24 ; 0xd3e <vfprintf+0x384>
|
|
d26: 8a 2d mov r24, r10
|
|
d28: 86 78 andi r24, 0x86 ; 134
|
|
d2a: 51 f0 breq .+20 ; 0xd40 <vfprintf+0x386>
|
|
d2c: a1 fe sbrs r10, 1
|
|
d2e: 02 c0 rjmp .+4 ; 0xd34 <vfprintf+0x37a>
|
|
d30: 8b e2 ldi r24, 0x2B ; 43
|
|
d32: 01 c0 rjmp .+2 ; 0xd36 <vfprintf+0x37c>
|
|
d34: 80 e2 ldi r24, 0x20 ; 32
|
|
d36: a7 fc sbrc r10, 7
|
|
d38: 8d e2 ldi r24, 0x2D ; 45
|
|
d3a: b6 01 movw r22, r12
|
|
d3c: 90 e0 ldi r25, 0x00 ; 0
|
|
d3e: 9e d2 rcall .+1340 ; 0x127c <fputc>
|
|
d40: 89 14 cp r8, r9
|
|
d42: 30 f4 brcc .+12 ; 0xd50 <vfprintf+0x396>
|
|
d44: b6 01 movw r22, r12
|
|
d46: 80 e3 ldi r24, 0x30 ; 48
|
|
d48: 90 e0 ldi r25, 0x00 ; 0
|
|
d4a: 98 d2 rcall .+1328 ; 0x127c <fputc>
|
|
d4c: 9a 94 dec r9
|
|
d4e: f8 cf rjmp .-16 ; 0xd40 <vfprintf+0x386>
|
|
d50: 8a 94 dec r8
|
|
d52: f3 01 movw r30, r6
|
|
d54: e8 0d add r30, r8
|
|
d56: f1 1d adc r31, r1
|
|
d58: 80 81 ld r24, Z
|
|
d5a: b6 01 movw r22, r12
|
|
d5c: 90 e0 ldi r25, 0x00 ; 0
|
|
d5e: 8e d2 rcall .+1308 ; 0x127c <fputc>
|
|
d60: 81 10 cpse r8, r1
|
|
d62: f6 cf rjmp .-20 ; 0xd50 <vfprintf+0x396>
|
|
d64: 22 20 and r2, r2
|
|
d66: 09 f4 brne .+2 ; 0xd6a <vfprintf+0x3b0>
|
|
d68: 4e ce rjmp .-868 ; 0xa06 <vfprintf+0x4c>
|
|
d6a: b6 01 movw r22, r12
|
|
d6c: 80 e2 ldi r24, 0x20 ; 32
|
|
d6e: 90 e0 ldi r25, 0x00 ; 0
|
|
d70: 85 d2 rcall .+1290 ; 0x127c <fputc>
|
|
d72: 2a 94 dec r2
|
|
d74: f7 cf rjmp .-18 ; 0xd64 <vfprintf+0x3aa>
|
|
d76: f6 01 movw r30, r12
|
|
d78: 86 81 ldd r24, Z+6 ; 0x06
|
|
d7a: 97 81 ldd r25, Z+7 ; 0x07
|
|
d7c: 02 c0 rjmp .+4 ; 0xd82 <vfprintf+0x3c8>
|
|
d7e: 8f ef ldi r24, 0xFF ; 255
|
|
d80: 9f ef ldi r25, 0xFF ; 255
|
|
d82: 2b 96 adiw r28, 0x0b ; 11
|
|
d84: 0f b6 in r0, 0x3f ; 63
|
|
d86: f8 94 cli
|
|
d88: de bf out 0x3e, r29 ; 62
|
|
d8a: 0f be out 0x3f, r0 ; 63
|
|
d8c: cd bf out 0x3d, r28 ; 61
|
|
d8e: df 91 pop r29
|
|
d90: cf 91 pop r28
|
|
d92: 1f 91 pop r17
|
|
d94: 0f 91 pop r16
|
|
d96: ff 90 pop r15
|
|
d98: ef 90 pop r14
|
|
d9a: df 90 pop r13
|
|
d9c: cf 90 pop r12
|
|
d9e: bf 90 pop r11
|
|
da0: af 90 pop r10
|
|
da2: 9f 90 pop r9
|
|
da4: 8f 90 pop r8
|
|
da6: 7f 90 pop r7
|
|
da8: 6f 90 pop r6
|
|
daa: 5f 90 pop r5
|
|
dac: 4f 90 pop r4
|
|
dae: 3f 90 pop r3
|
|
db0: 2f 90 pop r2
|
|
db2: 08 95 ret
|
|
|
|
00000db4 <dtoa_prf>:
|
|
db4: 8f 92 push r8
|
|
db6: 9f 92 push r9
|
|
db8: af 92 push r10
|
|
dba: bf 92 push r11
|
|
dbc: cf 92 push r12
|
|
dbe: df 92 push r13
|
|
dc0: ef 92 push r14
|
|
dc2: ff 92 push r15
|
|
dc4: 0f 93 push r16
|
|
dc6: 1f 93 push r17
|
|
dc8: cf 93 push r28
|
|
dca: df 93 push r29
|
|
dcc: cd b7 in r28, 0x3d ; 61
|
|
dce: de b7 in r29, 0x3e ; 62
|
|
dd0: 29 97 sbiw r28, 0x09 ; 9
|
|
dd2: 0f b6 in r0, 0x3f ; 63
|
|
dd4: f8 94 cli
|
|
dd6: de bf out 0x3e, r29 ; 62
|
|
dd8: 0f be out 0x3f, r0 ; 63
|
|
dda: cd bf out 0x3d, r28 ; 61
|
|
ddc: 6a 01 movw r12, r20
|
|
dde: 12 2f mov r17, r18
|
|
de0: b0 2e mov r11, r16
|
|
de2: 2b e3 ldi r18, 0x3B ; 59
|
|
de4: 20 17 cp r18, r16
|
|
de6: 20 f0 brcs .+8 ; 0xdf0 <dtoa_prf+0x3c>
|
|
de8: ff 24 eor r15, r15
|
|
dea: f3 94 inc r15
|
|
dec: f0 0e add r15, r16
|
|
dee: 02 c0 rjmp .+4 ; 0xdf4 <dtoa_prf+0x40>
|
|
df0: 2c e3 ldi r18, 0x3C ; 60
|
|
df2: f2 2e mov r15, r18
|
|
df4: 0f 2d mov r16, r15
|
|
df6: 27 e0 ldi r18, 0x07 ; 7
|
|
df8: ae 01 movw r20, r28
|
|
dfa: 4f 5f subi r20, 0xFF ; 255
|
|
dfc: 5f 4f sbci r21, 0xFF ; 255
|
|
dfe: 50 d1 rcall .+672 ; 0x10a0 <__ftoa_engine>
|
|
e00: bc 01 movw r22, r24
|
|
e02: 49 81 ldd r20, Y+1 ; 0x01
|
|
e04: 84 2f mov r24, r20
|
|
e06: 89 70 andi r24, 0x09 ; 9
|
|
e08: 81 30 cpi r24, 0x01 ; 1
|
|
e0a: 31 f0 breq .+12 ; 0xe18 <dtoa_prf+0x64>
|
|
e0c: e1 fc sbrc r14, 1
|
|
e0e: 06 c0 rjmp .+12 ; 0xe1c <dtoa_prf+0x68>
|
|
e10: e0 fe sbrs r14, 0
|
|
e12: 06 c0 rjmp .+12 ; 0xe20 <dtoa_prf+0x6c>
|
|
e14: 90 e2 ldi r25, 0x20 ; 32
|
|
e16: 05 c0 rjmp .+10 ; 0xe22 <dtoa_prf+0x6e>
|
|
e18: 9d e2 ldi r25, 0x2D ; 45
|
|
e1a: 03 c0 rjmp .+6 ; 0xe22 <dtoa_prf+0x6e>
|
|
e1c: 9b e2 ldi r25, 0x2B ; 43
|
|
e1e: 01 c0 rjmp .+2 ; 0xe22 <dtoa_prf+0x6e>
|
|
e20: 90 e0 ldi r25, 0x00 ; 0
|
|
e22: 5e 2d mov r21, r14
|
|
e24: 50 71 andi r21, 0x10 ; 16
|
|
e26: 43 ff sbrs r20, 3
|
|
e28: 3c c0 rjmp .+120 ; 0xea2 <dtoa_prf+0xee>
|
|
e2a: 91 11 cpse r25, r1
|
|
e2c: 02 c0 rjmp .+4 ; 0xe32 <dtoa_prf+0x7e>
|
|
e2e: 83 e0 ldi r24, 0x03 ; 3
|
|
e30: 01 c0 rjmp .+2 ; 0xe34 <dtoa_prf+0x80>
|
|
e32: 84 e0 ldi r24, 0x04 ; 4
|
|
e34: 81 17 cp r24, r17
|
|
e36: 18 f4 brcc .+6 ; 0xe3e <dtoa_prf+0x8a>
|
|
e38: 21 2f mov r18, r17
|
|
e3a: 28 1b sub r18, r24
|
|
e3c: 01 c0 rjmp .+2 ; 0xe40 <dtoa_prf+0x8c>
|
|
e3e: 20 e0 ldi r18, 0x00 ; 0
|
|
e40: 51 11 cpse r21, r1
|
|
e42: 0b c0 rjmp .+22 ; 0xe5a <dtoa_prf+0xa6>
|
|
e44: f6 01 movw r30, r12
|
|
e46: 82 2f mov r24, r18
|
|
e48: 30 e2 ldi r19, 0x20 ; 32
|
|
e4a: 88 23 and r24, r24
|
|
e4c: 19 f0 breq .+6 ; 0xe54 <dtoa_prf+0xa0>
|
|
e4e: 31 93 st Z+, r19
|
|
e50: 81 50 subi r24, 0x01 ; 1
|
|
e52: fb cf rjmp .-10 ; 0xe4a <dtoa_prf+0x96>
|
|
e54: c2 0e add r12, r18
|
|
e56: d1 1c adc r13, r1
|
|
e58: 20 e0 ldi r18, 0x00 ; 0
|
|
e5a: 99 23 and r25, r25
|
|
e5c: 29 f0 breq .+10 ; 0xe68 <dtoa_prf+0xb4>
|
|
e5e: d6 01 movw r26, r12
|
|
e60: 9c 93 st X, r25
|
|
e62: f6 01 movw r30, r12
|
|
e64: 31 96 adiw r30, 0x01 ; 1
|
|
e66: 6f 01 movw r12, r30
|
|
e68: c6 01 movw r24, r12
|
|
e6a: 03 96 adiw r24, 0x03 ; 3
|
|
e6c: e2 fe sbrs r14, 2
|
|
e6e: 0a c0 rjmp .+20 ; 0xe84 <dtoa_prf+0xd0>
|
|
e70: 3e e4 ldi r19, 0x4E ; 78
|
|
e72: d6 01 movw r26, r12
|
|
e74: 3c 93 st X, r19
|
|
e76: 41 e4 ldi r20, 0x41 ; 65
|
|
e78: 11 96 adiw r26, 0x01 ; 1
|
|
e7a: 4c 93 st X, r20
|
|
e7c: 11 97 sbiw r26, 0x01 ; 1
|
|
e7e: 12 96 adiw r26, 0x02 ; 2
|
|
e80: 3c 93 st X, r19
|
|
e82: 06 c0 rjmp .+12 ; 0xe90 <dtoa_prf+0xdc>
|
|
e84: 3e e6 ldi r19, 0x6E ; 110
|
|
e86: f6 01 movw r30, r12
|
|
e88: 30 83 st Z, r19
|
|
e8a: 41 e6 ldi r20, 0x61 ; 97
|
|
e8c: 41 83 std Z+1, r20 ; 0x01
|
|
e8e: 32 83 std Z+2, r19 ; 0x02
|
|
e90: fc 01 movw r30, r24
|
|
e92: 32 2f mov r19, r18
|
|
e94: 40 e2 ldi r20, 0x20 ; 32
|
|
e96: 33 23 and r19, r19
|
|
e98: 09 f4 brne .+2 ; 0xe9c <dtoa_prf+0xe8>
|
|
e9a: 42 c0 rjmp .+132 ; 0xf20 <dtoa_prf+0x16c>
|
|
e9c: 41 93 st Z+, r20
|
|
e9e: 31 50 subi r19, 0x01 ; 1
|
|
ea0: fa cf rjmp .-12 ; 0xe96 <dtoa_prf+0xe2>
|
|
ea2: 42 ff sbrs r20, 2
|
|
ea4: 44 c0 rjmp .+136 ; 0xf2e <dtoa_prf+0x17a>
|
|
ea6: 91 11 cpse r25, r1
|
|
ea8: 02 c0 rjmp .+4 ; 0xeae <dtoa_prf+0xfa>
|
|
eaa: 83 e0 ldi r24, 0x03 ; 3
|
|
eac: 01 c0 rjmp .+2 ; 0xeb0 <dtoa_prf+0xfc>
|
|
eae: 84 e0 ldi r24, 0x04 ; 4
|
|
eb0: 81 17 cp r24, r17
|
|
eb2: 18 f4 brcc .+6 ; 0xeba <dtoa_prf+0x106>
|
|
eb4: 21 2f mov r18, r17
|
|
eb6: 28 1b sub r18, r24
|
|
eb8: 01 c0 rjmp .+2 ; 0xebc <dtoa_prf+0x108>
|
|
eba: 20 e0 ldi r18, 0x00 ; 0
|
|
ebc: 51 11 cpse r21, r1
|
|
ebe: 0b c0 rjmp .+22 ; 0xed6 <dtoa_prf+0x122>
|
|
ec0: f6 01 movw r30, r12
|
|
ec2: 82 2f mov r24, r18
|
|
ec4: 30 e2 ldi r19, 0x20 ; 32
|
|
ec6: 88 23 and r24, r24
|
|
ec8: 19 f0 breq .+6 ; 0xed0 <dtoa_prf+0x11c>
|
|
eca: 31 93 st Z+, r19
|
|
ecc: 81 50 subi r24, 0x01 ; 1
|
|
ece: fb cf rjmp .-10 ; 0xec6 <dtoa_prf+0x112>
|
|
ed0: c2 0e add r12, r18
|
|
ed2: d1 1c adc r13, r1
|
|
ed4: 20 e0 ldi r18, 0x00 ; 0
|
|
ed6: 99 23 and r25, r25
|
|
ed8: 29 f0 breq .+10 ; 0xee4 <dtoa_prf+0x130>
|
|
eda: d6 01 movw r26, r12
|
|
edc: 9c 93 st X, r25
|
|
ede: f6 01 movw r30, r12
|
|
ee0: 31 96 adiw r30, 0x01 ; 1
|
|
ee2: 6f 01 movw r12, r30
|
|
ee4: c6 01 movw r24, r12
|
|
ee6: 03 96 adiw r24, 0x03 ; 3
|
|
ee8: e2 fe sbrs r14, 2
|
|
eea: 0b c0 rjmp .+22 ; 0xf02 <dtoa_prf+0x14e>
|
|
eec: 39 e4 ldi r19, 0x49 ; 73
|
|
eee: d6 01 movw r26, r12
|
|
ef0: 3c 93 st X, r19
|
|
ef2: 3e e4 ldi r19, 0x4E ; 78
|
|
ef4: 11 96 adiw r26, 0x01 ; 1
|
|
ef6: 3c 93 st X, r19
|
|
ef8: 11 97 sbiw r26, 0x01 ; 1
|
|
efa: 36 e4 ldi r19, 0x46 ; 70
|
|
efc: 12 96 adiw r26, 0x02 ; 2
|
|
efe: 3c 93 st X, r19
|
|
f00: 07 c0 rjmp .+14 ; 0xf10 <dtoa_prf+0x15c>
|
|
f02: 39 e6 ldi r19, 0x69 ; 105
|
|
f04: f6 01 movw r30, r12
|
|
f06: 30 83 st Z, r19
|
|
f08: 3e e6 ldi r19, 0x6E ; 110
|
|
f0a: 31 83 std Z+1, r19 ; 0x01
|
|
f0c: 36 e6 ldi r19, 0x66 ; 102
|
|
f0e: 32 83 std Z+2, r19 ; 0x02
|
|
f10: fc 01 movw r30, r24
|
|
f12: 32 2f mov r19, r18
|
|
f14: 40 e2 ldi r20, 0x20 ; 32
|
|
f16: 33 23 and r19, r19
|
|
f18: 19 f0 breq .+6 ; 0xf20 <dtoa_prf+0x16c>
|
|
f1a: 41 93 st Z+, r20
|
|
f1c: 31 50 subi r19, 0x01 ; 1
|
|
f1e: fb cf rjmp .-10 ; 0xf16 <dtoa_prf+0x162>
|
|
f20: fc 01 movw r30, r24
|
|
f22: e2 0f add r30, r18
|
|
f24: f1 1d adc r31, r1
|
|
f26: 10 82 st Z, r1
|
|
f28: 8e ef ldi r24, 0xFE ; 254
|
|
f2a: 9f ef ldi r25, 0xFF ; 255
|
|
f2c: a6 c0 rjmp .+332 ; 0x107a <__DATA_REGION_LENGTH__+0x7a>
|
|
f2e: 21 e0 ldi r18, 0x01 ; 1
|
|
f30: 30 e0 ldi r19, 0x00 ; 0
|
|
f32: 91 11 cpse r25, r1
|
|
f34: 02 c0 rjmp .+4 ; 0xf3a <dtoa_prf+0x186>
|
|
f36: 20 e0 ldi r18, 0x00 ; 0
|
|
f38: 30 e0 ldi r19, 0x00 ; 0
|
|
f3a: 16 16 cp r1, r22
|
|
f3c: 17 06 cpc r1, r23
|
|
f3e: 1c f4 brge .+6 ; 0xf46 <dtoa_prf+0x192>
|
|
f40: fb 01 movw r30, r22
|
|
f42: 31 96 adiw r30, 0x01 ; 1
|
|
f44: 02 c0 rjmp .+4 ; 0xf4a <dtoa_prf+0x196>
|
|
f46: e1 e0 ldi r30, 0x01 ; 1
|
|
f48: f0 e0 ldi r31, 0x00 ; 0
|
|
f4a: 2e 0f add r18, r30
|
|
f4c: 3f 1f adc r19, r31
|
|
f4e: bb 20 and r11, r11
|
|
f50: 21 f0 breq .+8 ; 0xf5a <dtoa_prf+0x1a6>
|
|
f52: eb 2d mov r30, r11
|
|
f54: f0 e0 ldi r31, 0x00 ; 0
|
|
f56: 31 96 adiw r30, 0x01 ; 1
|
|
f58: 02 c0 rjmp .+4 ; 0xf5e <dtoa_prf+0x1aa>
|
|
f5a: e0 e0 ldi r30, 0x00 ; 0
|
|
f5c: f0 e0 ldi r31, 0x00 ; 0
|
|
f5e: 2e 0f add r18, r30
|
|
f60: 3f 1f adc r19, r31
|
|
f62: e1 2f mov r30, r17
|
|
f64: f0 e0 ldi r31, 0x00 ; 0
|
|
f66: 2e 17 cp r18, r30
|
|
f68: 3f 07 cpc r19, r31
|
|
f6a: 1c f4 brge .+6 ; 0xf72 <dtoa_prf+0x1be>
|
|
f6c: 12 1b sub r17, r18
|
|
f6e: 21 2f mov r18, r17
|
|
f70: 01 c0 rjmp .+2 ; 0xf74 <dtoa_prf+0x1c0>
|
|
f72: 20 e0 ldi r18, 0x00 ; 0
|
|
f74: 8e 2d mov r24, r14
|
|
f76: 88 71 andi r24, 0x18 ; 24
|
|
f78: 59 f4 brne .+22 ; 0xf90 <dtoa_prf+0x1dc>
|
|
f7a: f6 01 movw r30, r12
|
|
f7c: 82 2f mov r24, r18
|
|
f7e: 30 e2 ldi r19, 0x20 ; 32
|
|
f80: 88 23 and r24, r24
|
|
f82: 19 f0 breq .+6 ; 0xf8a <dtoa_prf+0x1d6>
|
|
f84: 31 93 st Z+, r19
|
|
f86: 81 50 subi r24, 0x01 ; 1
|
|
f88: fb cf rjmp .-10 ; 0xf80 <dtoa_prf+0x1cc>
|
|
f8a: c2 0e add r12, r18
|
|
f8c: d1 1c adc r13, r1
|
|
f8e: 20 e0 ldi r18, 0x00 ; 0
|
|
f90: 99 23 and r25, r25
|
|
f92: 29 f0 breq .+10 ; 0xf9e <dtoa_prf+0x1ea>
|
|
f94: d6 01 movw r26, r12
|
|
f96: 9c 93 st X, r25
|
|
f98: f6 01 movw r30, r12
|
|
f9a: 31 96 adiw r30, 0x01 ; 1
|
|
f9c: 6f 01 movw r12, r30
|
|
f9e: 51 11 cpse r21, r1
|
|
fa0: 0b c0 rjmp .+22 ; 0xfb8 <dtoa_prf+0x204>
|
|
fa2: f6 01 movw r30, r12
|
|
fa4: 82 2f mov r24, r18
|
|
fa6: 90 e3 ldi r25, 0x30 ; 48
|
|
fa8: 88 23 and r24, r24
|
|
faa: 19 f0 breq .+6 ; 0xfb2 <dtoa_prf+0x1fe>
|
|
fac: 91 93 st Z+, r25
|
|
fae: 81 50 subi r24, 0x01 ; 1
|
|
fb0: fb cf rjmp .-10 ; 0xfa8 <dtoa_prf+0x1f4>
|
|
fb2: c2 0e add r12, r18
|
|
fb4: d1 1c adc r13, r1
|
|
fb6: 20 e0 ldi r18, 0x00 ; 0
|
|
fb8: 0f 2d mov r16, r15
|
|
fba: 06 0f add r16, r22
|
|
fbc: 9a 81 ldd r25, Y+2 ; 0x02
|
|
fbe: 34 2f mov r19, r20
|
|
fc0: 30 71 andi r19, 0x10 ; 16
|
|
fc2: 44 ff sbrs r20, 4
|
|
fc4: 03 c0 rjmp .+6 ; 0xfcc <dtoa_prf+0x218>
|
|
fc6: 91 33 cpi r25, 0x31 ; 49
|
|
fc8: 09 f4 brne .+2 ; 0xfcc <dtoa_prf+0x218>
|
|
fca: 01 50 subi r16, 0x01 ; 1
|
|
fcc: 10 16 cp r1, r16
|
|
fce: 24 f4 brge .+8 ; 0xfd8 <dtoa_prf+0x224>
|
|
fd0: 09 30 cpi r16, 0x09 ; 9
|
|
fd2: 18 f0 brcs .+6 ; 0xfda <dtoa_prf+0x226>
|
|
fd4: 08 e0 ldi r16, 0x08 ; 8
|
|
fd6: 01 c0 rjmp .+2 ; 0xfda <dtoa_prf+0x226>
|
|
fd8: 01 e0 ldi r16, 0x01 ; 1
|
|
fda: ab 01 movw r20, r22
|
|
fdc: 77 ff sbrs r23, 7
|
|
fde: 02 c0 rjmp .+4 ; 0xfe4 <dtoa_prf+0x230>
|
|
fe0: 40 e0 ldi r20, 0x00 ; 0
|
|
fe2: 50 e0 ldi r21, 0x00 ; 0
|
|
fe4: fb 01 movw r30, r22
|
|
fe6: e4 1b sub r30, r20
|
|
fe8: f5 0b sbc r31, r21
|
|
fea: a1 e0 ldi r26, 0x01 ; 1
|
|
fec: b0 e0 ldi r27, 0x00 ; 0
|
|
fee: ac 0f add r26, r28
|
|
ff0: bd 1f adc r27, r29
|
|
ff2: ea 0f add r30, r26
|
|
ff4: fb 1f adc r31, r27
|
|
ff6: 8e e2 ldi r24, 0x2E ; 46
|
|
ff8: a8 2e mov r10, r24
|
|
ffa: 4b 01 movw r8, r22
|
|
ffc: 80 1a sub r8, r16
|
|
ffe: 91 08 sbc r9, r1
|
|
1000: 0b 2d mov r16, r11
|
|
1002: 10 e0 ldi r17, 0x00 ; 0
|
|
1004: 11 95 neg r17
|
|
1006: 01 95 neg r16
|
|
1008: 11 09 sbc r17, r1
|
|
100a: 4f 3f cpi r20, 0xFF ; 255
|
|
100c: bf ef ldi r27, 0xFF ; 255
|
|
100e: 5b 07 cpc r21, r27
|
|
1010: 21 f4 brne .+8 ; 0x101a <__DATA_REGION_LENGTH__+0x1a>
|
|
1012: d6 01 movw r26, r12
|
|
1014: ac 92 st X, r10
|
|
1016: 11 96 adiw r26, 0x01 ; 1
|
|
1018: 6d 01 movw r12, r26
|
|
101a: 64 17 cp r22, r20
|
|
101c: 75 07 cpc r23, r21
|
|
101e: 2c f0 brlt .+10 ; 0x102a <__DATA_REGION_LENGTH__+0x2a>
|
|
1020: 84 16 cp r8, r20
|
|
1022: 95 06 cpc r9, r21
|
|
1024: 14 f4 brge .+4 ; 0x102a <__DATA_REGION_LENGTH__+0x2a>
|
|
1026: 81 81 ldd r24, Z+1 ; 0x01
|
|
1028: 01 c0 rjmp .+2 ; 0x102c <__DATA_REGION_LENGTH__+0x2c>
|
|
102a: 80 e3 ldi r24, 0x30 ; 48
|
|
102c: 41 50 subi r20, 0x01 ; 1
|
|
102e: 51 09 sbc r21, r1
|
|
1030: 31 96 adiw r30, 0x01 ; 1
|
|
1032: d6 01 movw r26, r12
|
|
1034: 11 96 adiw r26, 0x01 ; 1
|
|
1036: 7d 01 movw r14, r26
|
|
1038: 40 17 cp r20, r16
|
|
103a: 51 07 cpc r21, r17
|
|
103c: 24 f0 brlt .+8 ; 0x1046 <__DATA_REGION_LENGTH__+0x46>
|
|
103e: d6 01 movw r26, r12
|
|
1040: 8c 93 st X, r24
|
|
1042: 67 01 movw r12, r14
|
|
1044: e2 cf rjmp .-60 ; 0x100a <__DATA_REGION_LENGTH__+0xa>
|
|
1046: 64 17 cp r22, r20
|
|
1048: 75 07 cpc r23, r21
|
|
104a: 39 f4 brne .+14 ; 0x105a <__DATA_REGION_LENGTH__+0x5a>
|
|
104c: 96 33 cpi r25, 0x36 ; 54
|
|
104e: 20 f4 brcc .+8 ; 0x1058 <__DATA_REGION_LENGTH__+0x58>
|
|
1050: 95 33 cpi r25, 0x35 ; 53
|
|
1052: 19 f4 brne .+6 ; 0x105a <__DATA_REGION_LENGTH__+0x5a>
|
|
1054: 31 11 cpse r19, r1
|
|
1056: 01 c0 rjmp .+2 ; 0x105a <__DATA_REGION_LENGTH__+0x5a>
|
|
1058: 81 e3 ldi r24, 0x31 ; 49
|
|
105a: f6 01 movw r30, r12
|
|
105c: 80 83 st Z, r24
|
|
105e: f7 01 movw r30, r14
|
|
1060: 82 2f mov r24, r18
|
|
1062: 90 e2 ldi r25, 0x20 ; 32
|
|
1064: 88 23 and r24, r24
|
|
1066: 19 f0 breq .+6 ; 0x106e <__DATA_REGION_LENGTH__+0x6e>
|
|
1068: 91 93 st Z+, r25
|
|
106a: 81 50 subi r24, 0x01 ; 1
|
|
106c: fb cf rjmp .-10 ; 0x1064 <__DATA_REGION_LENGTH__+0x64>
|
|
106e: f7 01 movw r30, r14
|
|
1070: e2 0f add r30, r18
|
|
1072: f1 1d adc r31, r1
|
|
1074: 10 82 st Z, r1
|
|
1076: 80 e0 ldi r24, 0x00 ; 0
|
|
1078: 90 e0 ldi r25, 0x00 ; 0
|
|
107a: 29 96 adiw r28, 0x09 ; 9
|
|
107c: 0f b6 in r0, 0x3f ; 63
|
|
107e: f8 94 cli
|
|
1080: de bf out 0x3e, r29 ; 62
|
|
1082: 0f be out 0x3f, r0 ; 63
|
|
1084: cd bf out 0x3d, r28 ; 61
|
|
1086: df 91 pop r29
|
|
1088: cf 91 pop r28
|
|
108a: 1f 91 pop r17
|
|
108c: 0f 91 pop r16
|
|
108e: ff 90 pop r15
|
|
1090: ef 90 pop r14
|
|
1092: df 90 pop r13
|
|
1094: cf 90 pop r12
|
|
1096: bf 90 pop r11
|
|
1098: af 90 pop r10
|
|
109a: 9f 90 pop r9
|
|
109c: 8f 90 pop r8
|
|
109e: 08 95 ret
|
|
|
|
000010a0 <__ftoa_engine>:
|
|
10a0: 28 30 cpi r18, 0x08 ; 8
|
|
10a2: 08 f0 brcs .+2 ; 0x10a6 <__ftoa_engine+0x6>
|
|
10a4: 27 e0 ldi r18, 0x07 ; 7
|
|
10a6: 33 27 eor r19, r19
|
|
10a8: da 01 movw r26, r20
|
|
10aa: 99 0f add r25, r25
|
|
10ac: 31 1d adc r19, r1
|
|
10ae: 87 fd sbrc r24, 7
|
|
10b0: 91 60 ori r25, 0x01 ; 1
|
|
10b2: 00 96 adiw r24, 0x00 ; 0
|
|
10b4: 61 05 cpc r22, r1
|
|
10b6: 71 05 cpc r23, r1
|
|
10b8: 39 f4 brne .+14 ; 0x10c8 <__ftoa_engine+0x28>
|
|
10ba: 32 60 ori r19, 0x02 ; 2
|
|
10bc: 2e 5f subi r18, 0xFE ; 254
|
|
10be: 3d 93 st X+, r19
|
|
10c0: 30 e3 ldi r19, 0x30 ; 48
|
|
10c2: 2a 95 dec r18
|
|
10c4: e1 f7 brne .-8 ; 0x10be <__ftoa_engine+0x1e>
|
|
10c6: 08 95 ret
|
|
10c8: 9f 3f cpi r25, 0xFF ; 255
|
|
10ca: 30 f0 brcs .+12 ; 0x10d8 <__ftoa_engine+0x38>
|
|
10cc: 80 38 cpi r24, 0x80 ; 128
|
|
10ce: 71 05 cpc r23, r1
|
|
10d0: 61 05 cpc r22, r1
|
|
10d2: 09 f0 breq .+2 ; 0x10d6 <__ftoa_engine+0x36>
|
|
10d4: 3c 5f subi r19, 0xFC ; 252
|
|
10d6: 3c 5f subi r19, 0xFC ; 252
|
|
10d8: 3d 93 st X+, r19
|
|
10da: 91 30 cpi r25, 0x01 ; 1
|
|
10dc: 08 f0 brcs .+2 ; 0x10e0 <__ftoa_engine+0x40>
|
|
10de: 80 68 ori r24, 0x80 ; 128
|
|
10e0: 91 1d adc r25, r1
|
|
10e2: df 93 push r29
|
|
10e4: cf 93 push r28
|
|
10e6: 1f 93 push r17
|
|
10e8: 0f 93 push r16
|
|
10ea: ff 92 push r15
|
|
10ec: ef 92 push r14
|
|
10ee: 19 2f mov r17, r25
|
|
10f0: 98 7f andi r25, 0xF8 ; 248
|
|
10f2: 96 95 lsr r25
|
|
10f4: e9 2f mov r30, r25
|
|
10f6: 96 95 lsr r25
|
|
10f8: 96 95 lsr r25
|
|
10fa: e9 0f add r30, r25
|
|
10fc: ff 27 eor r31, r31
|
|
10fe: ea 51 subi r30, 0x1A ; 26
|
|
1100: ff 4f sbci r31, 0xFF ; 255
|
|
1102: 99 27 eor r25, r25
|
|
1104: 33 27 eor r19, r19
|
|
1106: ee 24 eor r14, r14
|
|
1108: ff 24 eor r15, r15
|
|
110a: a7 01 movw r20, r14
|
|
110c: e7 01 movw r28, r14
|
|
110e: 05 90 lpm r0, Z+
|
|
1110: 08 94 sec
|
|
1112: 07 94 ror r0
|
|
1114: 28 f4 brcc .+10 ; 0x1120 <__stack+0x21>
|
|
1116: 36 0f add r19, r22
|
|
1118: e7 1e adc r14, r23
|
|
111a: f8 1e adc r15, r24
|
|
111c: 49 1f adc r20, r25
|
|
111e: 51 1d adc r21, r1
|
|
1120: 66 0f add r22, r22
|
|
1122: 77 1f adc r23, r23
|
|
1124: 88 1f adc r24, r24
|
|
1126: 99 1f adc r25, r25
|
|
1128: 06 94 lsr r0
|
|
112a: a1 f7 brne .-24 ; 0x1114 <__stack+0x15>
|
|
112c: 05 90 lpm r0, Z+
|
|
112e: 07 94 ror r0
|
|
1130: 28 f4 brcc .+10 ; 0x113c <__stack+0x3d>
|
|
1132: e7 0e add r14, r23
|
|
1134: f8 1e adc r15, r24
|
|
1136: 49 1f adc r20, r25
|
|
1138: 56 1f adc r21, r22
|
|
113a: c1 1d adc r28, r1
|
|
113c: 77 0f add r23, r23
|
|
113e: 88 1f adc r24, r24
|
|
1140: 99 1f adc r25, r25
|
|
1142: 66 1f adc r22, r22
|
|
1144: 06 94 lsr r0
|
|
1146: a1 f7 brne .-24 ; 0x1130 <__stack+0x31>
|
|
1148: 05 90 lpm r0, Z+
|
|
114a: 07 94 ror r0
|
|
114c: 28 f4 brcc .+10 ; 0x1158 <__stack+0x59>
|
|
114e: f8 0e add r15, r24
|
|
1150: 49 1f adc r20, r25
|
|
1152: 56 1f adc r21, r22
|
|
1154: c7 1f adc r28, r23
|
|
1156: d1 1d adc r29, r1
|
|
1158: 88 0f add r24, r24
|
|
115a: 99 1f adc r25, r25
|
|
115c: 66 1f adc r22, r22
|
|
115e: 77 1f adc r23, r23
|
|
1160: 06 94 lsr r0
|
|
1162: a1 f7 brne .-24 ; 0x114c <__stack+0x4d>
|
|
1164: 05 90 lpm r0, Z+
|
|
1166: 07 94 ror r0
|
|
1168: 20 f4 brcc .+8 ; 0x1172 <__stack+0x73>
|
|
116a: 49 0f add r20, r25
|
|
116c: 56 1f adc r21, r22
|
|
116e: c7 1f adc r28, r23
|
|
1170: d8 1f adc r29, r24
|
|
1172: 99 0f add r25, r25
|
|
1174: 66 1f adc r22, r22
|
|
1176: 77 1f adc r23, r23
|
|
1178: 88 1f adc r24, r24
|
|
117a: 06 94 lsr r0
|
|
117c: a9 f7 brne .-22 ; 0x1168 <__stack+0x69>
|
|
117e: 84 91 lpm r24, Z
|
|
1180: 10 95 com r17
|
|
1182: 17 70 andi r17, 0x07 ; 7
|
|
1184: 41 f0 breq .+16 ; 0x1196 <__stack+0x97>
|
|
1186: d6 95 lsr r29
|
|
1188: c7 95 ror r28
|
|
118a: 57 95 ror r21
|
|
118c: 47 95 ror r20
|
|
118e: f7 94 ror r15
|
|
1190: e7 94 ror r14
|
|
1192: 1a 95 dec r17
|
|
1194: c1 f7 brne .-16 ; 0x1186 <__stack+0x87>
|
|
1196: ec e8 ldi r30, 0x8C ; 140
|
|
1198: f0 e0 ldi r31, 0x00 ; 0
|
|
119a: 68 94 set
|
|
119c: 15 90 lpm r1, Z+
|
|
119e: 15 91 lpm r17, Z+
|
|
11a0: 35 91 lpm r19, Z+
|
|
11a2: 65 91 lpm r22, Z+
|
|
11a4: 95 91 lpm r25, Z+
|
|
11a6: 05 90 lpm r0, Z+
|
|
11a8: 7f e2 ldi r23, 0x2F ; 47
|
|
11aa: 73 95 inc r23
|
|
11ac: e1 18 sub r14, r1
|
|
11ae: f1 0a sbc r15, r17
|
|
11b0: 43 0b sbc r20, r19
|
|
11b2: 56 0b sbc r21, r22
|
|
11b4: c9 0b sbc r28, r25
|
|
11b6: d0 09 sbc r29, r0
|
|
11b8: c0 f7 brcc .-16 ; 0x11aa <__stack+0xab>
|
|
11ba: e1 0c add r14, r1
|
|
11bc: f1 1e adc r15, r17
|
|
11be: 43 1f adc r20, r19
|
|
11c0: 56 1f adc r21, r22
|
|
11c2: c9 1f adc r28, r25
|
|
11c4: d0 1d adc r29, r0
|
|
11c6: 7e f4 brtc .+30 ; 0x11e6 <__stack+0xe7>
|
|
11c8: 70 33 cpi r23, 0x30 ; 48
|
|
11ca: 11 f4 brne .+4 ; 0x11d0 <__stack+0xd1>
|
|
11cc: 8a 95 dec r24
|
|
11ce: e6 cf rjmp .-52 ; 0x119c <__stack+0x9d>
|
|
11d0: e8 94 clt
|
|
11d2: 01 50 subi r16, 0x01 ; 1
|
|
11d4: 30 f0 brcs .+12 ; 0x11e2 <__stack+0xe3>
|
|
11d6: 08 0f add r16, r24
|
|
11d8: 0a f4 brpl .+2 ; 0x11dc <__stack+0xdd>
|
|
11da: 00 27 eor r16, r16
|
|
11dc: 02 17 cp r16, r18
|
|
11de: 08 f4 brcc .+2 ; 0x11e2 <__stack+0xe3>
|
|
11e0: 20 2f mov r18, r16
|
|
11e2: 23 95 inc r18
|
|
11e4: 02 2f mov r16, r18
|
|
11e6: 7a 33 cpi r23, 0x3A ; 58
|
|
11e8: 28 f0 brcs .+10 ; 0x11f4 <__stack+0xf5>
|
|
11ea: 79 e3 ldi r23, 0x39 ; 57
|
|
11ec: 7d 93 st X+, r23
|
|
11ee: 2a 95 dec r18
|
|
11f0: e9 f7 brne .-6 ; 0x11ec <__stack+0xed>
|
|
11f2: 10 c0 rjmp .+32 ; 0x1214 <__stack+0x115>
|
|
11f4: 7d 93 st X+, r23
|
|
11f6: 2a 95 dec r18
|
|
11f8: 89 f6 brne .-94 ; 0x119c <__stack+0x9d>
|
|
11fa: 06 94 lsr r0
|
|
11fc: 97 95 ror r25
|
|
11fe: 67 95 ror r22
|
|
1200: 37 95 ror r19
|
|
1202: 17 95 ror r17
|
|
1204: 17 94 ror r1
|
|
1206: e1 18 sub r14, r1
|
|
1208: f1 0a sbc r15, r17
|
|
120a: 43 0b sbc r20, r19
|
|
120c: 56 0b sbc r21, r22
|
|
120e: c9 0b sbc r28, r25
|
|
1210: d0 09 sbc r29, r0
|
|
1212: 98 f0 brcs .+38 ; 0x123a <__stack+0x13b>
|
|
1214: 23 95 inc r18
|
|
1216: 7e 91 ld r23, -X
|
|
1218: 73 95 inc r23
|
|
121a: 7a 33 cpi r23, 0x3A ; 58
|
|
121c: 08 f0 brcs .+2 ; 0x1220 <__stack+0x121>
|
|
121e: 70 e3 ldi r23, 0x30 ; 48
|
|
1220: 7c 93 st X, r23
|
|
1222: 20 13 cpse r18, r16
|
|
1224: b8 f7 brcc .-18 ; 0x1214 <__stack+0x115>
|
|
1226: 7e 91 ld r23, -X
|
|
1228: 70 61 ori r23, 0x10 ; 16
|
|
122a: 7d 93 st X+, r23
|
|
122c: 30 f0 brcs .+12 ; 0x123a <__stack+0x13b>
|
|
122e: 83 95 inc r24
|
|
1230: 71 e3 ldi r23, 0x31 ; 49
|
|
1232: 7d 93 st X+, r23
|
|
1234: 70 e3 ldi r23, 0x30 ; 48
|
|
1236: 2a 95 dec r18
|
|
1238: e1 f7 brne .-8 ; 0x1232 <__stack+0x133>
|
|
123a: 11 24 eor r1, r1
|
|
123c: ef 90 pop r14
|
|
123e: ff 90 pop r15
|
|
1240: 0f 91 pop r16
|
|
1242: 1f 91 pop r17
|
|
1244: cf 91 pop r28
|
|
1246: df 91 pop r29
|
|
1248: 99 27 eor r25, r25
|
|
124a: 87 fd sbrc r24, 7
|
|
124c: 90 95 com r25
|
|
124e: 08 95 ret
|
|
|
|
00001250 <strnlen_P>:
|
|
1250: fc 01 movw r30, r24
|
|
1252: 05 90 lpm r0, Z+
|
|
1254: 61 50 subi r22, 0x01 ; 1
|
|
1256: 70 40 sbci r23, 0x00 ; 0
|
|
1258: 01 10 cpse r0, r1
|
|
125a: d8 f7 brcc .-10 ; 0x1252 <strnlen_P+0x2>
|
|
125c: 80 95 com r24
|
|
125e: 90 95 com r25
|
|
1260: 8e 0f add r24, r30
|
|
1262: 9f 1f adc r25, r31
|
|
1264: 08 95 ret
|
|
|
|
00001266 <strnlen>:
|
|
1266: fc 01 movw r30, r24
|
|
1268: 61 50 subi r22, 0x01 ; 1
|
|
126a: 70 40 sbci r23, 0x00 ; 0
|
|
126c: 01 90 ld r0, Z+
|
|
126e: 01 10 cpse r0, r1
|
|
1270: d8 f7 brcc .-10 ; 0x1268 <strnlen+0x2>
|
|
1272: 80 95 com r24
|
|
1274: 90 95 com r25
|
|
1276: 8e 0f add r24, r30
|
|
1278: 9f 1f adc r25, r31
|
|
127a: 08 95 ret
|
|
|
|
0000127c <fputc>:
|
|
127c: 0f 93 push r16
|
|
127e: 1f 93 push r17
|
|
1280: cf 93 push r28
|
|
1282: df 93 push r29
|
|
1284: fb 01 movw r30, r22
|
|
1286: 23 81 ldd r18, Z+3 ; 0x03
|
|
1288: 21 fd sbrc r18, 1
|
|
128a: 03 c0 rjmp .+6 ; 0x1292 <fputc+0x16>
|
|
128c: 8f ef ldi r24, 0xFF ; 255
|
|
128e: 9f ef ldi r25, 0xFF ; 255
|
|
1290: 2c c0 rjmp .+88 ; 0x12ea <fputc+0x6e>
|
|
1292: 22 ff sbrs r18, 2
|
|
1294: 16 c0 rjmp .+44 ; 0x12c2 <fputc+0x46>
|
|
1296: 46 81 ldd r20, Z+6 ; 0x06
|
|
1298: 57 81 ldd r21, Z+7 ; 0x07
|
|
129a: 24 81 ldd r18, Z+4 ; 0x04
|
|
129c: 35 81 ldd r19, Z+5 ; 0x05
|
|
129e: 42 17 cp r20, r18
|
|
12a0: 53 07 cpc r21, r19
|
|
12a2: 44 f4 brge .+16 ; 0x12b4 <fputc+0x38>
|
|
12a4: a0 81 ld r26, Z
|
|
12a6: b1 81 ldd r27, Z+1 ; 0x01
|
|
12a8: 9d 01 movw r18, r26
|
|
12aa: 2f 5f subi r18, 0xFF ; 255
|
|
12ac: 3f 4f sbci r19, 0xFF ; 255
|
|
12ae: 31 83 std Z+1, r19 ; 0x01
|
|
12b0: 20 83 st Z, r18
|
|
12b2: 8c 93 st X, r24
|
|
12b4: 26 81 ldd r18, Z+6 ; 0x06
|
|
12b6: 37 81 ldd r19, Z+7 ; 0x07
|
|
12b8: 2f 5f subi r18, 0xFF ; 255
|
|
12ba: 3f 4f sbci r19, 0xFF ; 255
|
|
12bc: 37 83 std Z+7, r19 ; 0x07
|
|
12be: 26 83 std Z+6, r18 ; 0x06
|
|
12c0: 14 c0 rjmp .+40 ; 0x12ea <fputc+0x6e>
|
|
12c2: 8b 01 movw r16, r22
|
|
12c4: ec 01 movw r28, r24
|
|
12c6: fb 01 movw r30, r22
|
|
12c8: 00 84 ldd r0, Z+8 ; 0x08
|
|
12ca: f1 85 ldd r31, Z+9 ; 0x09
|
|
12cc: e0 2d mov r30, r0
|
|
12ce: 09 95 icall
|
|
12d0: 89 2b or r24, r25
|
|
12d2: e1 f6 brne .-72 ; 0x128c <fputc+0x10>
|
|
12d4: d8 01 movw r26, r16
|
|
12d6: 16 96 adiw r26, 0x06 ; 6
|
|
12d8: 8d 91 ld r24, X+
|
|
12da: 9c 91 ld r25, X
|
|
12dc: 17 97 sbiw r26, 0x07 ; 7
|
|
12de: 01 96 adiw r24, 0x01 ; 1
|
|
12e0: 17 96 adiw r26, 0x07 ; 7
|
|
12e2: 9c 93 st X, r25
|
|
12e4: 8e 93 st -X, r24
|
|
12e6: 16 97 sbiw r26, 0x06 ; 6
|
|
12e8: ce 01 movw r24, r28
|
|
12ea: df 91 pop r29
|
|
12ec: cf 91 pop r28
|
|
12ee: 1f 91 pop r17
|
|
12f0: 0f 91 pop r16
|
|
12f2: 08 95 ret
|
|
|
|
000012f4 <__ultoa_invert>:
|
|
12f4: fa 01 movw r30, r20
|
|
12f6: aa 27 eor r26, r26
|
|
12f8: 28 30 cpi r18, 0x08 ; 8
|
|
12fa: 51 f1 breq .+84 ; 0x1350 <__ultoa_invert+0x5c>
|
|
12fc: 20 31 cpi r18, 0x10 ; 16
|
|
12fe: 81 f1 breq .+96 ; 0x1360 <__ultoa_invert+0x6c>
|
|
1300: e8 94 clt
|
|
1302: 6f 93 push r22
|
|
1304: 6e 7f andi r22, 0xFE ; 254
|
|
1306: 6e 5f subi r22, 0xFE ; 254
|
|
1308: 7f 4f sbci r23, 0xFF ; 255
|
|
130a: 8f 4f sbci r24, 0xFF ; 255
|
|
130c: 9f 4f sbci r25, 0xFF ; 255
|
|
130e: af 4f sbci r26, 0xFF ; 255
|
|
1310: b1 e0 ldi r27, 0x01 ; 1
|
|
1312: 3e d0 rcall .+124 ; 0x1390 <__ultoa_invert+0x9c>
|
|
1314: b4 e0 ldi r27, 0x04 ; 4
|
|
1316: 3c d0 rcall .+120 ; 0x1390 <__ultoa_invert+0x9c>
|
|
1318: 67 0f add r22, r23
|
|
131a: 78 1f adc r23, r24
|
|
131c: 89 1f adc r24, r25
|
|
131e: 9a 1f adc r25, r26
|
|
1320: a1 1d adc r26, r1
|
|
1322: 68 0f add r22, r24
|
|
1324: 79 1f adc r23, r25
|
|
1326: 8a 1f adc r24, r26
|
|
1328: 91 1d adc r25, r1
|
|
132a: a1 1d adc r26, r1
|
|
132c: 6a 0f add r22, r26
|
|
132e: 71 1d adc r23, r1
|
|
1330: 81 1d adc r24, r1
|
|
1332: 91 1d adc r25, r1
|
|
1334: a1 1d adc r26, r1
|
|
1336: 20 d0 rcall .+64 ; 0x1378 <__ultoa_invert+0x84>
|
|
1338: 09 f4 brne .+2 ; 0x133c <__ultoa_invert+0x48>
|
|
133a: 68 94 set
|
|
133c: 3f 91 pop r19
|
|
133e: 2a e0 ldi r18, 0x0A ; 10
|
|
1340: 26 9f mul r18, r22
|
|
1342: 11 24 eor r1, r1
|
|
1344: 30 19 sub r19, r0
|
|
1346: 30 5d subi r19, 0xD0 ; 208
|
|
1348: 31 93 st Z+, r19
|
|
134a: de f6 brtc .-74 ; 0x1302 <__ultoa_invert+0xe>
|
|
134c: cf 01 movw r24, r30
|
|
134e: 08 95 ret
|
|
1350: 46 2f mov r20, r22
|
|
1352: 47 70 andi r20, 0x07 ; 7
|
|
1354: 40 5d subi r20, 0xD0 ; 208
|
|
1356: 41 93 st Z+, r20
|
|
1358: b3 e0 ldi r27, 0x03 ; 3
|
|
135a: 0f d0 rcall .+30 ; 0x137a <__ultoa_invert+0x86>
|
|
135c: c9 f7 brne .-14 ; 0x1350 <__ultoa_invert+0x5c>
|
|
135e: f6 cf rjmp .-20 ; 0x134c <__ultoa_invert+0x58>
|
|
1360: 46 2f mov r20, r22
|
|
1362: 4f 70 andi r20, 0x0F ; 15
|
|
1364: 40 5d subi r20, 0xD0 ; 208
|
|
1366: 4a 33 cpi r20, 0x3A ; 58
|
|
1368: 18 f0 brcs .+6 ; 0x1370 <__ultoa_invert+0x7c>
|
|
136a: 49 5d subi r20, 0xD9 ; 217
|
|
136c: 31 fd sbrc r19, 1
|
|
136e: 40 52 subi r20, 0x20 ; 32
|
|
1370: 41 93 st Z+, r20
|
|
1372: 02 d0 rcall .+4 ; 0x1378 <__ultoa_invert+0x84>
|
|
1374: a9 f7 brne .-22 ; 0x1360 <__ultoa_invert+0x6c>
|
|
1376: ea cf rjmp .-44 ; 0x134c <__ultoa_invert+0x58>
|
|
1378: b4 e0 ldi r27, 0x04 ; 4
|
|
137a: a6 95 lsr r26
|
|
137c: 97 95 ror r25
|
|
137e: 87 95 ror r24
|
|
1380: 77 95 ror r23
|
|
1382: 67 95 ror r22
|
|
1384: ba 95 dec r27
|
|
1386: c9 f7 brne .-14 ; 0x137a <__ultoa_invert+0x86>
|
|
1388: 00 97 sbiw r24, 0x00 ; 0
|
|
138a: 61 05 cpc r22, r1
|
|
138c: 71 05 cpc r23, r1
|
|
138e: 08 95 ret
|
|
1390: 9b 01 movw r18, r22
|
|
1392: ac 01 movw r20, r24
|
|
1394: 0a 2e mov r0, r26
|
|
1396: 06 94 lsr r0
|
|
1398: 57 95 ror r21
|
|
139a: 47 95 ror r20
|
|
139c: 37 95 ror r19
|
|
139e: 27 95 ror r18
|
|
13a0: ba 95 dec r27
|
|
13a2: c9 f7 brne .-14 ; 0x1396 <__ultoa_invert+0xa2>
|
|
13a4: 62 0f add r22, r18
|
|
13a6: 73 1f adc r23, r19
|
|
13a8: 84 1f adc r24, r20
|
|
13aa: 95 1f adc r25, r21
|
|
13ac: a0 1d adc r26, r0
|
|
13ae: 08 95 ret
|
|
|
|
000013b0 <_exit>:
|
|
13b0: f8 94 cli
|
|
|
|
000013b2 <__stop_program>:
|
|
13b2: ff cf rjmp .-2 ; 0x13b2 <__stop_program>
|