📄 older_m88.lss
字号:
OLDer_M88.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 00000138 00800100 0000196e 000019e2 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 0000196e 00000000 00000000 00000074 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 00000227 00800238 00001aa6 00001b1a 2**0
ALLOC
3 .debug_aranges 000000e0 00000000 00000000 00001b1a 2**0
CONTENTS, READONLY, DEBUGGING
4 .debug_pubnames 00000650 00000000 00000000 00001bfa 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_info 00002595 00000000 00000000 0000224a 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_abbrev 00000c13 00000000 00000000 000047df 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_line 00002626 00000000 00000000 000053f2 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_frame 000004a0 00000000 00000000 00007a18 2**2
CONTENTS, READONLY, DEBUGGING
9 .debug_str 00000685 00000000 00000000 00007eb8 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_loc 00000e09 00000000 00000000 0000853d 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_ranges 00000180 00000000 00000000 00009346 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: ee c0 rjmp .+476 ; 0x1de <__ctors_end>
2: 08 c1 rjmp .+528 ; 0x214 <__bad_interrupt>
4: 07 c1 rjmp .+526 ; 0x214 <__bad_interrupt>
6: 06 c1 rjmp .+524 ; 0x214 <__bad_interrupt>
8: 05 c1 rjmp .+522 ; 0x214 <__bad_interrupt>
a: 04 c1 rjmp .+520 ; 0x214 <__bad_interrupt>
c: 03 c1 rjmp .+518 ; 0x214 <__bad_interrupt>
e: 02 c1 rjmp .+516 ; 0x214 <__bad_interrupt>
10: 01 c1 rjmp .+514 ; 0x214 <__bad_interrupt>
12: 00 c1 rjmp .+512 ; 0x214 <__bad_interrupt>
14: ff c0 rjmp .+510 ; 0x214 <__bad_interrupt>
16: fe c0 rjmp .+508 ; 0x214 <__bad_interrupt>
18: fd c0 rjmp .+506 ; 0x214 <__bad_interrupt>
1a: fc c0 rjmp .+504 ; 0x214 <__bad_interrupt>
1c: fb c0 rjmp .+502 ; 0x214 <__bad_interrupt>
1e: fa c0 rjmp .+500 ; 0x214 <__bad_interrupt>
20: f9 c0 rjmp .+498 ; 0x214 <__bad_interrupt>
22: f8 c0 rjmp .+496 ; 0x214 <__bad_interrupt>
24: fe c9 rjmp .-3076 ; 0xfffff422 <__eeprom_end+0xff7ef422>
26: f6 c0 rjmp .+492 ; 0x214 <__bad_interrupt>
28: f5 c0 rjmp .+490 ; 0x214 <__bad_interrupt>
2a: f4 c0 rjmp .+488 ; 0x214 <__bad_interrupt>
2c: f3 c0 rjmp .+486 ; 0x214 <__bad_interrupt>
2e: f2 c0 rjmp .+484 ; 0x214 <__bad_interrupt>
30: f1 c0 rjmp .+482 ; 0x214 <__bad_interrupt>
32: f0 c0 rjmp .+480 ; 0x214 <__bad_interrupt>
00000034 <instr_sheet>:
34: 68 00 00 00 01 eb 04 5b 68 5d 53 68 6f 77 20 48 h......[h]Show H
44: 65 6c 70 00 00 00 00 00 00 73 74 70 00 03 80 01 elp......stp....
54: 5b 73 74 70 5d 53 65 74 20 54 79 70 65 00 00 00 [stp]Set Type...
64: 00 00 72 73 74 00 03 e1 04 5b 72 73 74 5d 52 65 ..rst....[rst]Re
74: 73 65 74 00 00 00 00 00 00 00 00 65 72 73 00 03 set........ers..
84: 26 04 5b 65 72 73 5d 45 72 61 73 65 00 00 00 00 &.[ers]Erase....
94: 00 00 00 00 72 69 64 00 03 19 04 5b 72 69 64 5d ....rid....[rid]
a4: 52 65 61 64 20 49 44 00 00 00 00 00 00 72 66 73 Read ID......rfs
b4: 00 03 0c 04 5b 72 66 73 5d 52 65 61 64 20 46 55 ....[rfs]Read FU
c4: 53 45 00 00 00 00 72 6c 62 00 03 bb 02 5b 72 6c SE....rlb....[rl
d4: 62 5d 52 65 61 64 20 4c 4f 43 4b 42 49 54 00 73 b]Read LOCKBIT.s
e4: 66 73 00 03 79 01 5b 73 66 73 5d 53 65 74 20 46 fs..y.[sfs]Set F
f4: 55 53 45 00 00 00 00 00 73 6c 62 00 03 72 01 5b USE.....slb..r.[
104: 73 6c 62 5d 53 65 74 20 4c 4f 43 4b 42 49 54 00 slb]Set LOCKBIT.
114: 00 64 66 6c 00 03 b4 02 5b 64 66 6c 5d 44 6f 77 .dfl....[dfl]Dow
124: 6e 20 46 4c 41 53 48 00 00 00 64 65 65 00 03 a6 n FLASH...dee...
134: 02 5b 64 65 65 5d 44 6f 77 6e 20 45 45 50 52 4f .[dee]Down EEPRO
144: 4d 00 00 70 66 73 00 03 73 02 5b 70 66 73 5d 50 M..pfs..s.[pfs]P
154: 72 6f 67 20 46 55 53 45 00 00 00 00 70 6c 62 00 rog FUSE....plb.
164: 03 5b 02 5b 70 6c 62 5d 50 72 6f 67 20 4c 4f 43 .[.[plb]Prog LOC
174: 4b 42 49 54 00 70 66 6c 00 03 30 04 5b 70 66 6c KBIT.pfl..0.[pfl
184: 5d 50 72 6f 67 20 46 4c 41 53 48 00 00 00 70 65 ]Prog FLASH...pe
194: 65 00 03 d3 01 5b 70 65 65 5d 50 72 6f 67 20 45 e....[pee]Prog E
1a4: 45 50 52 4f 4d 00 00 70 61 6c 00 03 bf 04 5b 70 EPROM..pal....[p
1b4: 61 6c 5d 50 72 6f 67 20 41 6c 6c 00 00 00 00 00 al]Prog All.....
1c4: 75 70 66 00 03 6e 01 5b 75 70 66 5d 55 70 64 61 upf..n.[upf]Upda
1d4: 74 65 00 00 00 00 00 00 00 00 te........
000001de <__ctors_end>:
1de: 11 24 eor r1, r1
1e0: 1f be out 0x3f, r1 ; 63
1e2: cf ef ldi r28, 0xFF ; 255
1e4: d4 e0 ldi r29, 0x04 ; 4
1e6: de bf out 0x3e, r29 ; 62
1e8: cd bf out 0x3d, r28 ; 61
000001ea <__do_copy_data>:
1ea: 12 e0 ldi r17, 0x02 ; 2
1ec: a0 e0 ldi r26, 0x00 ; 0
1ee: b1 e0 ldi r27, 0x01 ; 1
1f0: ee e6 ldi r30, 0x6E ; 110
1f2: f9 e1 ldi r31, 0x19 ; 25
1f4: 02 c0 rjmp .+4 ; 0x1fa <.do_copy_data_start>
000001f6 <.do_copy_data_loop>:
1f6: 05 90 lpm r0, Z+
1f8: 0d 92 st X+, r0
000001fa <.do_copy_data_start>:
1fa: a8 33 cpi r26, 0x38 ; 56
1fc: b1 07 cpc r27, r17
1fe: d9 f7 brne .-10 ; 0x1f6 <.do_copy_data_loop>
00000200 <__do_clear_bss>:
200: 14 e0 ldi r17, 0x04 ; 4
202: a8 e3 ldi r26, 0x38 ; 56
204: b2 e0 ldi r27, 0x02 ; 2
206: 01 c0 rjmp .+2 ; 0x20a <.do_clear_bss_start>
00000208 <.do_clear_bss_loop>:
208: 1d 92 st X+, r1
0000020a <.do_clear_bss_start>:
20a: af 35 cpi r26, 0x5F ; 95
20c: b1 07 cpc r27, r17
20e: e1 f7 brne .-8 ; 0x208 <.do_clear_bss_loop>
210: 0d d8 rcall .-4070 ; 0xfffff22c <__eeprom_end+0xff7ef22c>
212: ab cb rjmp .-2218 ; 0xfffff96a <__eeprom_end+0xff7ef96a>
00000214 <__bad_interrupt>:
214: f5 ce rjmp .-534 ; 0x0 <__vectors>
00000216 <ascii2hex>:
#define Ascii2Hex(data) (data >= '0' && data <= '9')? (data - '0') : \
((data >= 'A' && data <= 'F')? (data - 'A' + 10) : \
((data >= 'a' && data <= 'f')? (data - 'a' + 10) : 0))
unsigned char ascii2hex(unsigned char *pBuf)
{
216: fc 01 movw r30, r24
unsigned char temp;
unsigned char c;
c = *pBuf++;
218: 90 81 ld r25, Z
temp = ((unsigned char)Ascii2Hex(c)) << 4;
21a: 89 2f mov r24, r25
21c: 80 53 subi r24, 0x30 ; 48
21e: 8a 30 cpi r24, 0x0A ; 10
220: 10 f4 brcc .+4 ; 0x226 <ascii2hex+0x10>
222: 28 2f mov r18, r24
224: 0f c0 rjmp .+30 ; 0x244 <ascii2hex+0x2e>
226: 89 2f mov r24, r25
228: 81 54 subi r24, 0x41 ; 65
22a: 86 30 cpi r24, 0x06 ; 6
22c: 18 f4 brcc .+6 ; 0x234 <ascii2hex+0x1e>
22e: 29 2f mov r18, r25
230: 27 53 subi r18, 0x37 ; 55
232: 08 c0 rjmp .+16 ; 0x244 <ascii2hex+0x2e>
234: 89 2f mov r24, r25
236: 81 56 subi r24, 0x61 ; 97
238: 86 30 cpi r24, 0x06 ; 6
23a: 10 f0 brcs .+4 ; 0x240 <ascii2hex+0x2a>
23c: 20 e0 ldi r18, 0x00 ; 0
23e: 04 c0 rjmp .+8 ; 0x248 <ascii2hex+0x32>
240: 29 2f mov r18, r25
242: 27 55 subi r18, 0x57 ; 87
244: 22 95 swap r18
246: 20 7f andi r18, 0xF0 ; 240
c = *pBuf;
248: 91 81 ldd r25, Z+1 ; 0x01
temp += Ascii2Hex(c);
24a: 89 2f mov r24, r25
24c: 80 53 subi r24, 0x30 ; 48
24e: 8a 30 cpi r24, 0x0A ; 10
250: 68 f0 brcs .+26 ; 0x26c <ascii2hex+0x56>
252: 81 51 subi r24, 0x11 ; 17
254: 86 30 cpi r24, 0x06 ; 6
256: 10 f4 brcc .+4 ; 0x25c <ascii2hex+0x46>
258: 86 5f subi r24, 0xF6 ; 246
25a: 08 c0 rjmp .+16 ; 0x26c <ascii2hex+0x56>
25c: 89 2f mov r24, r25
25e: 81 56 subi r24, 0x61 ; 97
260: 86 30 cpi r24, 0x06 ; 6
262: 10 f0 brcs .+4 ; 0x268 <ascii2hex+0x52>
264: 80 e0 ldi r24, 0x00 ; 0
266: 02 c0 rjmp .+4 ; 0x26c <ascii2hex+0x56>
268: 89 2f mov r24, r25
26a: 87 55 subi r24, 0x57 ; 87
return temp;
}
26c: 82 0f add r24, r18
26e: 08 95 ret
00000270 <str_compare>:
};
unsigned char str_compare(const unsigned char *c, unsigned char *p,
unsigned char size)
{
270: dc 01 movw r26, r24
272: fb 01 movw r30, r22
if (size == 0 || c == NULL || p == NULL)
274: 44 23 and r20, r20
276: 81 f0 breq .+32 ; 0x298 <str_compare+0x28>
278: 00 97 sbiw r24, 0x00 ; 0
27a: 71 f0 breq .+28 ; 0x298 <str_compare+0x28>
27c: 61 15 cp r22, r1
27e: 71 05 cpc r23, r1
280: 59 f0 breq .+22 ; 0x298 <str_compare+0x28>
282: 41 50 subi r20, 0x01 ; 1
return 0;
while (size--)
{
if (*c != *p)
284: 9c 91 ld r25, X
286: 80 81 ld r24, Z
288: 98 17 cp r25, r24
28a: 31 f4 brne .+12 ; 0x298 <str_compare+0x28>
return 0;
c++;
28c: 11 96 adiw r26, 0x01 ; 1
p++;
28e: 31 96 adiw r30, 0x01 ; 1
unsigned char size)
{
if (size == 0 || c == NULL || p == NULL)
return 0;
while (size--)
290: 44 23 and r20, r20
292: b9 f7 brne .-18 ; 0x282 <str_compare+0x12>
294: 81 e0 ldi r24, 0x01 ; 1
296: 08 95 ret
298: 80 e0 ldi r24, 0x00 ; 0
p++;
}
return (!0);
}
29a: 08 95 ret
0000029c <pgm_str_compare>:
unsigned char pgm_str_compare(const unsigned char *c, unsigned char *p,
unsigned char size)
{
29c: cf 93 push r28
29e: df 93 push r29
2a0: ec 01 movw r28, r24
2a2: db 01 movw r26, r22
if (size == 0 || c == NULL || p == NULL)
2a4: 44 23 and r20, r20
2a6: b1 f0 breq .+44 ; 0x2d4 <pgm_str_compare+0x38>
2a8: 00 97 sbiw r24, 0x00 ; 0
2aa: a1 f0 breq .+40 ; 0x2d4 <pgm_str_compare+0x38>
2ac: 61 15 cp r22, r1
2ae: 71 05 cpc r23, r1
2b0: 89 f0 breq .+34 ; 0x2d4 <pgm_str_compare+0x38>
2b2: 20 e0 ldi r18, 0x00 ; 0
2b4: 30 e0 ldi r19, 0x00 ; 0
2b6: 0a c0 rjmp .+20 ; 0x2cc <pgm_str_compare+0x30>
return 0;
while (size--)
{
if (pgm_read_byte(c) != *p)
2b8: fe 01 movw r30, r28
2ba: e2 0f add r30, r18
2bc: f3 1f adc r31, r19
2be: e4 91 lpm r30, Z+
2c0: 2f 5f subi r18, 0xFF ; 255
2c2: 3f 4f sbci r19, 0xFF ; 255
2c4: 8c 91 ld r24, X
2c6: e8 17 cp r30, r24
2c8: 29 f4 brne .+10 ; 0x2d4 <pgm_str_compare+0x38>
return 0;
c++;
p++;
2ca: 11 96 adiw r26, 0x01 ; 1
unsigned char size)
{
if (size == 0 || c == NULL || p == NULL)
return 0;
while (size--)
2cc: 42 17 cp r20, r18
2ce: a1 f7 brne .-24 ; 0x2b8 <pgm_str_compare+0x1c>
2d0: 81 e0 ldi r24, 0x01 ; 1
2d2: 01 c0 rjmp .+2 ; 0x2d6 <pgm_str_compare+0x3a>
2d4: 80 e0 ldi r24, 0x00 ; 0
p++;
}
return (!0);
}
2d6: df 91 pop r29
2d8: cf 91 pop r28
2da: 08 95 ret
000002dc <exe_updatefirmware>:
_delay_ms(100);
exe_proglockbit();
}
void exe_updatefirmware(void)
{
2dc: e0 e0 ldi r30, 0x00 ; 0
2de: fe e0 ldi r31, 0x0E ; 14
2e0: 09 95 icall
(*((void(*)(void))(0x0e00UL)))();
}
2e2: 08 95 ret
000002e4 <exe_setlockbit>:
sendstr("FUSE VALUE:[LOW HIGH EXT]");
}
void exe_setlockbit(void)
{
2e4: 81 e0 ldi r24, 0x01 ; 1
2e6: 80 93 39 02 sts 0x0239, r24
//pgm_sendstr(&instr_sheet[10].explain[0]);
getlockbit_flag=1;
sendstr("LOCKBIT:");
2ea: 80 e0 ldi r24, 0x00 ; 0
2ec: 91 e0 ldi r25, 0x01 ; 1
2ee: 63 d8 rcall .-3898 ; 0xfffff3b6 <__eeprom_end+0xff7ef3b6>
}
2f0: 08 95 ret
000002f2 <exe_setfuse>:
else sendstr(msg_fail);
}
void exe_setfuse(void)
{
2f2: 81 e0 ldi r24, 0x01 ; 1
2f4: 80 93 38 02 sts 0x0238, r24
//pgm_sendstr(&instr_sheet[9].explain[0]);
getfuse_flag=1;
sendstr("FUSE VALUE:[LOW HIGH EXT]");
2f8: 89 e0 ldi r24, 0x09 ; 9
2fa: 91 e0 ldi r25, 0x01 ; 1
2fc: 5c d8 rcall .-3912 ; 0xfffff3b6 <__eeprom_end+0xff7ef3b6>
}
2fe: 08 95 ret
00000300 <exe_settype>:
sendstr("aven.mail@163.com 2008.10.1");
sendstr(msg_done);
}*/
void exe_settype(void)
{
300: 81 e0 ldi r24, 0x01 ; 1
302: 80 93 3a 02 sts 0x023A, r24
//pgm_sendstr(&instr_sheet[2].explain[0]);
getprogsize_flag=1;
sendstr("SIZE:[FLASH EEPROM](00=1K...07=128K,0A=512B)");
306: 83 e2 ldi r24, 0x23 ; 35
308: 91 e0 ldi r25, 0x01 ; 1
30a: 55 d8 rcall .-3926 ; 0xfffff3b6 <__eeprom_end+0xff7ef3b6>
}
30c: 08 95 ret
0000030e <com_match>:
return (!0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -