📄 hyj.lss
字号:
hyj.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00002714 00000000 00000000 00000074 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 0000001a 00800060 00002714 00002788 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000036 0080007a 0000272e 000027a2 2**0
ALLOC
3 .debug_aranges 000000c0 00000000 00000000 000027a2 2**0
CONTENTS, READONLY, DEBUGGING
4 .debug_pubnames 0000046b 00000000 00000000 00002862 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_info 00002000 00000000 00000000 00002ccd 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_abbrev 0000099b 00000000 00000000 00004ccd 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_line 00001d90 00000000 00000000 00005668 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_frame 00000300 00000000 00000000 000073f8 2**2
CONTENTS, READONLY, DEBUGGING
9 .debug_str 000007bb 00000000 00000000 000076f8 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_loc 000017e8 00000000 00000000 00007eb3 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_ranges 000001c0 00000000 00000000 0000969b 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 aa 00 jmp 0x154 ; 0x154 <__ctors_end>
4: 0c 94 c7 00 jmp 0x18e ; 0x18e <__bad_interrupt>
8: 0c 94 c7 00 jmp 0x18e ; 0x18e <__bad_interrupt>
c: 0c 94 c7 00 jmp 0x18e ; 0x18e <__bad_interrupt>
10: 0c 94 c7 00 jmp 0x18e ; 0x18e <__bad_interrupt>
14: 0c 94 c7 00 jmp 0x18e ; 0x18e <__bad_interrupt>
18: 0c 94 c7 00 jmp 0x18e ; 0x18e <__bad_interrupt>
1c: 0c 94 c7 00 jmp 0x18e ; 0x18e <__bad_interrupt>
20: 0c 94 c7 00 jmp 0x18e ; 0x18e <__bad_interrupt>
24: 0c 94 c7 00 jmp 0x18e ; 0x18e <__bad_interrupt>
28: 0c 94 c7 00 jmp 0x18e ; 0x18e <__bad_interrupt>
2c: 0c 94 c7 00 jmp 0x18e ; 0x18e <__bad_interrupt>
30: 0c 94 c7 00 jmp 0x18e ; 0x18e <__bad_interrupt>
34: 0c 94 c7 00 jmp 0x18e ; 0x18e <__bad_interrupt>
38: 0c 94 c7 00 jmp 0x18e ; 0x18e <__bad_interrupt>
3c: 0c 94 c7 00 jmp 0x18e ; 0x18e <__bad_interrupt>
40: 0c 94 c7 00 jmp 0x18e ; 0x18e <__bad_interrupt>
44: 0c 94 c7 00 jmp 0x18e ; 0x18e <__bad_interrupt>
48: 0c 94 c7 00 jmp 0x18e ; 0x18e <__bad_interrupt>
4c: 0c 94 c7 00 jmp 0x18e ; 0x18e <__bad_interrupt>
50: 0c 94 c7 00 jmp 0x18e ; 0x18e <__bad_interrupt>
00000054 <suzi>:
54: 00 00 00 18 24 42 42 42 42 42 42 42 24 18 00 00 ....$BBBBBBB$...
64: 00 00 00 10 70 10 10 10 10 10 10 10 10 7c 00 00 ....p........|..
74: 00 00 00 3c 42 42 42 04 04 08 10 20 42 7e 00 00 ...<BBB.... B~..
84: 00 00 00 3c 42 42 04 18 04 02 02 42 44 38 00 00 ...<BB.....BD8..
94: 00 00 00 04 0c 14 24 24 44 44 7e 04 04 1e 00 00 ......$$DD~.....
a4: 00 00 00 7e 40 40 40 58 64 02 02 42 44 38 00 00 ...~@@@Xd..BD8..
b4: 00 00 00 1c 24 40 40 58 64 42 42 42 24 18 00 00 ....$@@XdBBB$...
c4: 00 00 00 7e 44 44 08 08 10 10 10 10 10 10 00 00 ...~DD..........
d4: 00 00 00 3c 42 42 42 24 18 24 42 42 42 3c 00 00 ...<BBB$.$BBB<..
e4: 00 00 00 18 24 42 42 42 26 1a 02 02 24 38 00 00 ....$BBB&...$8..
f4: 00 00 00 10 10 18 28 28 24 3c 44 42 42 e7 00 00 ......(($<DBB...
104: 00 00 00 f8 44 44 44 78 44 42 42 42 44 f8 00 00 ....DDDxDBBBD...
114: 00 00 00 3e 42 42 80 80 80 80 80 42 44 38 00 00 ...>BB.....BD8..
124: 00 00 00 f8 44 42 42 42 42 42 42 42 44 f8 00 00 ....DBBBBBBBD...
134: 00 00 00 fc 42 48 48 78 48 48 40 42 42 fc 00 00 ....BHHxHH@BB...
144: 00 00 00 fc 42 48 48 78 48 48 40 40 40 e0 00 00 ....BHHxHH@@@...
00000154 <__ctors_end>:
154: 11 24 eor r1, r1
156: 1f be out 0x3f, r1 ; 63
158: cf e5 ldi r28, 0x5F ; 95
15a: d4 e0 ldi r29, 0x04 ; 4
15c: de bf out 0x3e, r29 ; 62
15e: cd bf out 0x3d, r28 ; 61
00000160 <__do_copy_data>:
160: 10 e0 ldi r17, 0x00 ; 0
162: a0 e6 ldi r26, 0x60 ; 96
164: b0 e0 ldi r27, 0x00 ; 0
166: e4 e1 ldi r30, 0x14 ; 20
168: f7 e2 ldi r31, 0x27 ; 39
16a: 02 c0 rjmp .+4 ; 0x170 <.do_copy_data_start>
0000016c <.do_copy_data_loop>:
16c: 05 90 lpm r0, Z+
16e: 0d 92 st X+, r0
00000170 <.do_copy_data_start>:
170: aa 37 cpi r26, 0x7A ; 122
172: b1 07 cpc r27, r17
174: d9 f7 brne .-10 ; 0x16c <.do_copy_data_loop>
00000176 <__do_clear_bss>:
176: 10 e0 ldi r17, 0x00 ; 0
178: aa e7 ldi r26, 0x7A ; 122
17a: b0 e0 ldi r27, 0x00 ; 0
17c: 01 c0 rjmp .+2 ; 0x180 <.do_clear_bss_start>
0000017e <.do_clear_bss_loop>:
17e: 1d 92 st X+, r1
00000180 <.do_clear_bss_start>:
180: a0 3b cpi r26, 0xB0 ; 176
182: b1 07 cpc r27, r17
184: e1 f7 brne .-8 ; 0x17e <.do_clear_bss_loop>
186: 0e 94 3a 02 call 0x474 ; 0x474 <main>
18a: 0c 94 88 13 jmp 0x2710 ; 0x2710 <_exit>
0000018e <__bad_interrupt>:
18e: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
00000192 <disp_image>:
extern uint16 SectorsPerClust;//每簇扇区数
extern uint8 FAT32_Enable;
void disp_image(void)
{
192: 2f 92 push r2
194: 3f 92 push r3
196: 4f 92 push r4
198: 5f 92 push r5
19a: 6f 92 push r6
19c: 7f 92 push r7
19e: 8f 92 push r8
1a0: 9f 92 push r9
1a2: af 92 push r10
1a4: bf 92 push r11
1a6: cf 92 push r12
1a8: df 92 push r13
1aa: ef 92 push r14
1ac: ff 92 push r15
1ae: 0f 93 push r16
1b0: 1f 93 push r17
1b2: df 93 push r29
1b4: cf 93 push r28
1b6: cd b7 in r28, 0x3d ; 61
1b8: de b7 in r29, 0x3e ; 62
1ba: ae 97 sbiw r28, 0x2e ; 46
1bc: 0f b6 in r0, 0x3f ; 63
1be: f8 94 cli
1c0: de bf out 0x3e, r29 ; 62
1c2: 0f be out 0x3f, r0 ; 63
1c4: cd bf out 0x3d, r28 ; 61
WORD count= 1 ,i =0 ;
uint8 *buffer ;
uint8 type ,x , rgb,first ,color_byte,byte1,byte2,byte3 ;
uint16 y ,color,tmp_color ;
uint32 p; //簇指示值 //cluster
type = 1 ;
1c6: 81 e0 ldi r24, 0x01 ; 1
1c8: 89 83 std Y+1, r24 ; 0x01
struct direntry BMPInfo; //要播放的mp3文件信息 //the mp3 file item whichi will be played
if( image_all == 0 ) //读取总图片数
1ca: 80 91 7c 00 lds r24, 0x007C
1ce: 90 91 7d 00 lds r25, 0x007D
1d2: 9e 01 movw r18, r28
1d4: 2e 5f subi r18, 0xFE ; 254
1d6: 3f 4f sbci r19, 0xFF ; 255
1d8: ae 01 movw r20, r28
1da: 4f 5f subi r20, 0xFF ; 255
1dc: 5f 4f sbci r21, 0xFF ; 255
1de: 89 2b or r24, r25
1e0: c9 f4 brne .+50 ; 0x214 <disp_image+0x82>
{
image_count = 0 ;
1e2: 10 92 7b 00 sts 0x007B, r1
1e6: 10 92 7a 00 sts 0x007A, r1
byte1 = Search(&BMPInfo,&image_count,&type) ;
1ea: 6a e7 ldi r22, 0x7A ; 122
1ec: 70 e0 ldi r23, 0x00 ; 0
1ee: c9 01 movw r24, r18
1f0: 0e 94 92 0b call 0x1724 ; 0x1724 <Search>
1f4: 88 a7 std Y+40, r24 ; 0x28
image_all = image_count ;
1f6: 80 91 7a 00 lds r24, 0x007A
1fa: 90 91 7b 00 lds r25, 0x007B
1fe: 90 93 7d 00 sts 0x007D, r25
202: 80 93 7c 00 sts 0x007C, r24
image_count = 1 ;
206: 81 e0 ldi r24, 0x01 ; 1
208: 90 e0 ldi r25, 0x00 ; 0
20a: 90 93 7b 00 sts 0x007B, r25
20e: 80 93 7a 00 sts 0x007A, r24
212: 06 c0 rjmp .+12 ; 0x220 <disp_image+0x8e>
GUI_sprintf_chartohex(60,300,image_all,0xffff,0x0000) ;
*/
}
else
{
byte1 = Search(&BMPInfo,&image_count,&type) ;
214: 6a e7 ldi r22, 0x7A ; 122
216: 70 e0 ldi r23, 0x00 ; 0
218: c9 01 movw r24, r18
21a: 0e 94 92 0b call 0x1724 ; 0x1724 <Search>
21e: 88 a7 std Y+40, r24 ; 0x28
}
p = BMPInfo.deStartCluster+(((uint32)BMPInfo.deHighClust)<<16);//读文件首簇 //the first cluster of the file
220: 8e 89 ldd r24, Y+22 ; 0x16
222: 9f 89 ldd r25, Y+23 ; 0x17
224: a0 e0 ldi r26, 0x00 ; 0
226: b0 e0 ldi r27, 0x00 ; 0
228: 6c 01 movw r12, r24
22a: bb 24 eor r11, r11
22c: aa 24 eor r10, r10
22e: 8c 8d ldd r24, Y+28 ; 0x1c
230: 9d 8d ldd r25, Y+29 ; 0x1d
232: a0 e0 ldi r26, 0x00 ; 0
234: b0 e0 ldi r27, 0x00 ; 0
236: a8 0e add r10, r24
238: b9 1e adc r11, r25
23a: ca 1e adc r12, r26
23c: db 1e adc r13, r27
x = 0 ;
y = 319 ;
rgb = 0 ;
count = 0 ;
first = 0 ;
buffer=malloc(512);
23e: 80 e0 ldi r24, 0x00 ; 0
240: 92 e0 ldi r25, 0x02 ; 2
242: 0e 94 45 12 call 0x248a ; 0x248a <malloc>
246: 3c 01 movw r6, r24
248: 1a a6 std Y+42, r1 ; 0x2a
24a: 99 24 eor r9, r9
24c: 19 a6 std Y+41, r1 ; 0x29
24e: 8f e3 ldi r24, 0x3F ; 63
250: 91 e0 ldi r25, 0x01 ; 1
252: 9d a3 std Y+37, r25 ; 0x25
254: 8c a3 std Y+36, r24 ; 0x24
256: 22 24 eor r2, r2
258: 33 24 eor r3, r3
25a: b8 c0 rjmp .+368 ; 0x3cc <disp_image+0x23a>
i = 0 ;
for( ; i < SectorsPerClust ; i++ ) //簇
{
FAT_LoadPartCluster(p,i,buffer);//读一个扇区 //read a sector
25c: 93 01 movw r18, r6
25e: a1 01 movw r20, r2
260: c6 01 movw r24, r12
262: b5 01 movw r22, r10
264: 0e 94 0b 0a call 0x1416 ; 0x1416 <FAT_LoadPartCluster>
if(i==0 && first==0) { count= buffer[0x0a] ; color_byte = buffer[0x1c] / 8 ; first = 1 ; }
268: 21 14 cp r2, r1
26a: 31 04 cpc r3, r1
26c: 71 f4 brne .+28 ; 0x28a <disp_image+0xf8>
26e: 99 a5 ldd r25, Y+41 ; 0x29
270: 99 23 and r25, r25
272: 59 f4 brne .+22 ; 0x28a <disp_image+0xf8>
274: f3 01 movw r30, r6
276: 82 85 ldd r24, Z+10 ; 0x0a
278: 48 2e mov r4, r24
27a: 55 24 eor r5, r5
27c: 84 8c ldd r8, Z+28 ; 0x1c
27e: 86 94 lsr r8
280: 86 94 lsr r8
282: 86 94 lsr r8
284: f1 e0 ldi r31, 0x01 ; 1
286: f9 a7 std Y+41, r31 ; 0x29
288: 02 c0 rjmp .+4 ; 0x28e <disp_image+0xfc>
28a: 44 24 eor r4, r4
28c: 55 24 eor r5, r5
28e: 73 01 movw r14, r6
290: e4 0c add r14, r4
292: f5 1c adc r15, r5
else { count=0 ; }
while(count<512) //读取一簇512扇区 (SectorsPerClust 每簇扇区数)
{
if(color_byte == 3) //24位颜色图
294: 83 e0 ldi r24, 0x03 ; 3
296: 88 16 cp r8, r24
298: 31 f5 brne .+76 ; 0x2e6 <disp_image+0x154>
{
switch ( rgb )
29a: 91 e0 ldi r25, 0x01 ; 1
29c: 99 16 cp r9, r25
29e: 71 f0 breq .+28 ; 0x2bc <disp_image+0x12a>
2a0: 99 16 cp r9, r25
2a2: 28 f0 brcs .+10 ; 0x2ae <disp_image+0x11c>
2a4: e2 e0 ldi r30, 0x02 ; 2
2a6: 9e 16 cp r9, r30
2a8: 09 f0 breq .+2 ; 0x2ac <disp_image+0x11a>
2aa: 65 c0 rjmp .+202 ; 0x376 <disp_image+0x1e4>
2ac: 12 c0 rjmp .+36 ; 0x2d2 <disp_image+0x140>
{
case 0 : tmp_color = buffer[count]>>3 ;
color |= tmp_color;
2ae: f7 01 movw r30, r14
2b0: 80 81 ld r24, Z
2b2: 86 95 lsr r24
2b4: 86 95 lsr r24
2b6: 86 95 lsr r24
2b8: 90 e0 ldi r25, 0x00 ; 0
2ba: 12 c0 rjmp .+36 ; 0x2e0 <disp_image+0x14e>
break ;
case 1 : tmp_color = buffer[count]>>2 ;
2bc: f7 01 movw r30, r14
2be: 80 81 ld r24, Z
2c0: 86 95 lsr r24
2c2: 86 95 lsr r24
2c4: 90 e0 ldi r25, 0x00 ; 0
tmp_color <<= 5 ;
color |= tmp_color ;
2c6: 25 e0 ldi r18, 0x05 ; 5
2c8: 88 0f add r24, r24
2ca: 99 1f adc r25, r25
2cc: 2a 95 dec r18
2ce: e1 f7 brne .-8 ; 0x2c8 <disp_image+0x136>
2d0: 07 c0 rjmp .+14 ; 0x2e0 <disp_image+0x14e>
break ;
case 2 : tmp_color = buffer[count]>>3 ;
2d2: f7 01 movw r30, r14
2d4: 80 81 ld r24, Z
tmp_color <<= 11 ;
color |= tmp_color ;
2d6: 88 7f andi r24, 0xF8 ; 248
2d8: 8c a7 std Y+44, r24 ; 0x2c
2da: 1b a6 std Y+43, r1 ; 0x2b
2dc: 8b a5 ldd r24, Y+43 ; 0x2b
2de: 9c a5 ldd r25, Y+44 ; 0x2c
2e0: 08 2b or r16, r24
2e2: 19 2b or r17, r25
2e4: 48 c0 rjmp .+144 ; 0x376 <disp_image+0x1e4>
rgb ++ ;
}
else
{
if(color_byte==2) //16位颜色图
2e6: 92 e0 ldi r25, 0x02 ; 2
2e8: 89 16 cp r8, r25
2ea: 81 f4 brne .+32 ; 0x30c <disp_image+0x17a>
{
switch ( rgb )
2ec: 99 20 and r9, r9
2ee: e9 f0 breq .+58 ; 0x32a <disp_image+0x198>
2f0: e1 e0 ldi r30, 0x01 ; 1
2f2: 9e 16 cp r9, r30
2f4: 09 f0 breq .+2 ; 0x2f8 <disp_image+0x166>
2f6: 3f c0 rjmp .+126 ; 0x376 <disp_image+0x1e4>
case 0 : byte1 = buffer[count] ;
break ;
case 1 :
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -