📄 test.lst
字号:
1 .file "test.c"
2 .arch atmega16
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
11 .text
12 .Ltext0:
73 .global usart_putchar
75 usart_putchar:
1:test.c **** #include <avr\io.h>
2:test.c **** #include <stdlib.h>
3:test.c **** #include <stdio.h>
4:test.c **** #include "D:\CAD\ProgDesigned\FAT01\CF_FAT.h"
5:test.c ****
6:test.c **** int usart_putchar(char c)
7:test.c **** {
77 .LM1:
78 /* prologue: frame size=0 */
79 0000 CF93 push r28
80 /* prologue end (size=1) */
81 0002 C82F mov r28,r24
8:test.c **** if(c == '\n')
83 .LM2:
84 0004 8A30 cpi r24,lo8(10)
85 0006 19F4 brne .L4
9:test.c **** usart_putchar('\r');
87 .LM3:
88 0008 8DE0 ldi r24,lo8(13)
89 000a 0E94 0000 call usart_putchar
90 .L4:
10:test.c **** loop_until_bit_is_set(UCSRA, UDRE);
92 .LM4:
93 000e 5D9B sbis 43-0x20,5
94 0010 FECF rjmp .L4
11:test.c **** UDR = c;
96 .LM5:
97 0012 CCB9 out 44-0x20,r28
12:test.c **** return 0;
13:test.c **** }
99 .LM6:
100 0014 80E0 ldi r24,lo8(0)
101 0016 90E0 ldi r25,hi8(0)
102 /* epilogue: frame size=0 */
103 0018 CF91 pop r28
104 001a 0895 ret
105 /* epilogue end (size=2) */
106 /* function usart_putchar size 14 (11) */
109 .global usart_getchar
111 usart_getchar:
14:test.c ****
15:test.c **** int usart_getchar(void)
16:test.c **** {
113 .LM7:
114 /* prologue: frame size=0 */
115 /* prologue end (size=0) */
116 .L8:
17:test.c **** loop_until_bit_is_set(UCSRA, RXC);
118 .LM8:
119 001c 5F9B sbis 43-0x20,7
120 001e FECF rjmp .L8
18:test.c **** return UDR;
122 .LM9:
123 0020 8CB1 in r24,44-0x20
19:test.c **** }
125 .LM10:
126 0022 9927 clr r25
127 /* epilogue: frame size=0 */
128 0024 0895 ret
129 /* epilogue end (size=1) */
130 /* function usart_getchar size 5 (4) */
133 .global InitIO
135 InitIO:
20:test.c ****
21:test.c **** void InitIO(void)
22:test.c **** {
137 .LM11:
138 /* prologue: frame size=0 */
139 /* prologue end (size=0) */
23:test.c **** UCSRA = 1 << UDRE;
141 .LM12:
142 0026 80E2 ldi r24,lo8(32)
143 0028 8BB9 out 43-0x20,r24
24:test.c **** UCSRB = (1 << RXEN) | (1 << TXEN) | (1 << RXCIE);
145 .LM13:
146 002a 88E9 ldi r24,lo8(-104)
147 002c 8AB9 out 42-0x20,r24
25:test.c **** UBRRL = 103; //9600bps at 16MHz
149 .LM14:
150 002e 87E6 ldi r24,lo8(103)
151 0030 89B9 out 41-0x20,r24
26:test.c **** UBRRH = 0;
153 .LM15:
154 0032 10BC out 64-0x20,__zero_reg__
27:test.c **** UCSRC = (1 << URSEL) | (1 << UCSZ1) | (1 << UCSZ0);
156 .LM16:
157 0034 86E8 ldi r24,lo8(-122)
158 0036 80BD out 64-0x20,r24
28:test.c **** fdevopen(usart_putchar, usart_getchar, 0);
160 .LM17:
161 0038 40E0 ldi r20,lo8(0)
162 003a 50E0 ldi r21,hi8(0)
163 003c 60E0 ldi r22,lo8(pm(usart_getchar))
164 003e 70E0 ldi r23,hi8(pm(usart_getchar))
165 0040 80E0 ldi r24,lo8(pm(usart_putchar))
166 0042 90E0 ldi r25,hi8(pm(usart_putchar))
167 0044 0E94 0000 call fdevopen
168 /* epilogue: frame size=0 */
169 0048 0895 ret
170 /* epilogue end (size=1) */
171 /* function InitIO size 18 (17) */
173 .data
174 .LC0:
175 0000 4669 6C65 .string "File System : "
175 2053 7973
175 7465 6D20
175 3A20 00
176 .LC1:
177 000f 4641 5433 .string "FAT32"
177 3200
178 .LC2:
179 0015 4641 5431 .string "FAT16"
179 3600
180 .LC3:
181 001b 4641 5431 .string "FAT12"
181 3200
182 .LC4:
183 0021 4F74 6865 .string "Other"
183 7200
184 .LC5:
185 0027 4368 616E .string "Change Dir to 'MYFILE~1\\TEXT'"
185 6765 2044
185 6972 2074
185 6F20 274D
185 5946 494C
186 .LC6:
187 0045 4D59 4649 .string "MYFILE~1"
187 4C45 7E31
187 00
188 .LC7:
189 004e 5465 7874 .string "Text"
189 00
190 .LC8:
191 0053 4F70 656E .string "Opening 'MP3DES~1.TXT'"
191 696E 6720
191 274D 5033
191 4445 537E
191 312E 5458
192 .LC9:
193 006a 4D50 3344 .string "MP3DES~1.TXT"
193 4553 7E31
193 2E54 5854
193 00
194 .LC10:
195 0077 00 .string ""
196 .text
198 .global main
200 main:
29:test.c **** }
30:test.c ****
31:test.c **** int main(void)
32:test.c **** {
202 .LM18:
203 /* prologue: frame size=64 */
204 004a C0E0 ldi r28,lo8(__stack - 64)
205 004c D0E0 ldi r29,hi8(__stack - 64)
206 004e DEBF out __SP_H__,r29
207 0050 CDBF out __SP_L__,r28
208 /* prologue end (size=4) */
33:test.c **** InitIO();
210 .LM19:
211 0052 0E94 0000 call InitIO
34:test.c **** // sbi(MCUCR, SRE);
35:test.c ****
36:test.c **** FS_Initialize();
213 .LM20:
214 0056 0E94 0000 call FS_Initialize
37:test.c ****
38:test.c **** printf("File System : ");
216 .LM21:
217 005a 80E0 ldi r24,lo8(.LC0)
218 005c 90E0 ldi r25,hi8(.LC0)
219 005e 9F93 push r25
220 0060 8F93 push r24
221 0062 0E94 0000 call printf
39:test.c **** if(FS_BPB->Type == FS_TYPE_FAT32)
223 .LM22:
224 0066 E091 0000 lds r30,FS_BPB
225 006a F091 0000 lds r31,(FS_BPB)+1
226 006e E081 ld r30,Z
227 0070 0F90 pop __tmp_reg__
228 0072 0F90 pop __tmp_reg__
229 0074 E230 cpi r30,lo8(2)
230 0076 19F4 brne .L13
40:test.c **** puts("FAT32");
232 .LM23:
233 0078 80E0 ldi r24,lo8(.LC1)
234 007a 90E0 ldi r25,hi8(.LC1)
235 007c 0CC0 rjmp .L31
236 .L13:
41:test.c **** else if(FS_BPB->Type == FS_TYPE_FAT16)
238 .LM24:
239 007e E130 cpi r30,lo8(1)
240 0080 19F4 brne .L15
42:test.c **** puts("FAT16");
242 .LM25:
243 0082 80E0 ldi r24,lo8(.LC2)
244 0084 90E0 ldi r25,hi8(.LC2)
245 0086 07C0 rjmp .L31
246 .L15:
43:test.c **** else if(FS_BPB->Type == FS_TYPE_FAT12)
248 .LM26:
249 0088 EE23 tst r30
250 008a 19F4 brne .L17
44:test.c **** puts("FAT12");
252 .LM27:
253 008c 80E0 ldi r24,lo8(.LC3)
254 008e 90E0 ldi r25,hi8(.LC3)
255 0090 02C0 rjmp .L31
256 .L17:
45:test.c **** else
46:test.c **** puts("Other");
258 .LM28:
259 0092 80E0 ldi r24,lo8(.LC4)
260 0094 90E0 ldi r25,hi8(.LC4)
261 .L31:
262 0096 0E94 0000 call puts
47:test.c ****
48:test.c **** puts("Change Dir to 'MYFILE~1\\TEXT'");
264 .LM29:
265 009a 80E0 ldi r24,lo8(.LC5)
266 009c 90E0 ldi r25,hi8(.LC5)
267 009e 0E94 0000 call puts
49:test.c **** FS_ChangeDir("MYFILE~1");
269 .LM30:
270 00a2 80E0 ldi r24,lo8(.LC6)
271 00a4 90E0 ldi r25,hi8(.LC6)
272 00a6 0E94 0000 call FS_ChangeDir
50:test.c **** FS_ChangeDir("Text");
274 .LM31:
275 00aa 80E0 ldi r24,lo8(.LC7)
276 00ac 90E0 ldi r25,hi8(.LC7)
277 00ae 0E94 0000 call FS_ChangeDir
51:test.c ****
52:test.c **** puts("Opening 'MP3DES~1.TXT'");
279 .LM32:
280 00b2 80E0 ldi r24,lo8(.LC8)
281 00b4 90E0 ldi r25,hi8(.LC8)
282 00b6 0E94 0000 call puts
53:test.c **** FS_TFile *F = FS_Open("MP3DES~1.TXT");
284 .LM33:
285 00ba 80E0 ldi r24,lo8(.LC9)
286 00bc 90E0 ldi r25,hi8(.LC9)
287 00be 0E94 0000 call FS_Open
288 00c2 7C01 movw r14,r24
54:test.c ****
55:test.c **** char buf[64], j, n;
56:test.c **** unsigned int i;
57:test.c ****
58:test.c **** for(i = 0; i < F->Length; i += 64)
290 .LM34:
291 00c4 AA24 clr r10
292 00c6 BB24 clr r11
293 00c8 FC01 movw r30,r24
294 00ca 8589 ldd r24,Z+21
295 00cc 9689 ldd r25,Z+22
296 00ce A789 ldd r26,Z+23
297 00d0 B08D ldd r27,Z+24
298 00d2 0097 sbiw r24,0
299 00d4 A105 cpc r26,__zero_reg__
300 00d6 B105 cpc r27,__zero_reg__
301 00d8 99F1 breq .L28
302 .L26:
59:test.c **** {
60:test.c **** n = FS_Read(F, buf, 64);
304 .LM35:
305 00da 20E4 ldi r18,lo8(64)
306 00dc 30E0 ldi r19,hi8(64)
307 00de 40E0 ldi r20,hlo8(64)
308 00e0 50E0 ldi r21,hhi8(64)
309 00e2 BE01 movw r22,r28
310 00e4 6F5F subi r22,lo8(-(1))
311 00e6 7F4F sbci r23,hi8(-(1))
312 00e8 C701 movw r24,r14
313 00ea 0E94 0000 call FS_Read
314 00ee DC01 movw r26,r24
315 00f0 CB01 movw r24,r22
61:test.c **** for(j = 0; j < n; j ++)
317 .LM36:
318 00f2 8823 tst r24
319 00f4 A1F0 breq .L30
320 00f6 CC24 clr r12
321 00f8 DD24 clr r13
322 00fa 182F mov r17,r24
323 .L25:
62:test.c **** putchar(buf[j]);
325 .LM37:
326 00fc FE01 movw r30,r28
327 00fe EC0D add r30,r12
328 0100 FD1D adc r31,r13
329 0102 8181 ldd r24,Z+1
330 0104 6091 0000 lds r22,__iob+2
331 0108 7091 0000 lds r23,(__iob+2)+1
332 010c 9927 clr r25
333 010e 0E94 0000 call fputc
335 .LM38:
336 0112 1150 subi r17,lo8(-(-1))
337 0114 0894 sec
338 0116 C11C adc r12,__zero_reg__
339 0118 D11C adc r13,__zero_reg__
340 011a 1123 tst r17
341 011c 79F7 brne .L25
342 .L30:
344 .LM39:
345 011e 80E4 ldi r24,lo8(64)
346 0120 90E0 ldi r25,hi8(64)
347 0122 A80E add r10,r24
348 0124 B91E adc r11,r25
349 0126 9501 movw r18,r10
350 0128 4427 clr r20
351 012a 5527 clr r21
352 012c F701 movw r30,r14
353 012e 8589 ldd r24,Z+21
354 0130 9689 ldd r25,Z+22
355 0132 A789 ldd r26,Z+23
356 0134 B08D ldd r27,Z+24
357 0136 2817 cp r18,r24
358 0138 3907 cpc r19,r25
359 013a 4A07 cpc r20,r26
360 013c 5B07 cpc r21,r27
361 013e 68F2 brlo .L26
362 .L28:
63:test.c **** }
64:test.c ****
65:test.c **** FS_Close(F);
364 .LM40:
365 0140 C701 movw r24,r14
366 0142 0E94 0000 call FS_Close
66:test.c ****
67:test.c **** puts("");
368 .LM41:
369 0146 80E0 ldi r24,lo8(.LC10)
370 0148 90E0 ldi r25,hi8(.LC10)
371 014a 0E94 0000 call puts
68:test.c ****
69:test.c **** FS_Destory();
373 .LM42:
374 014e 0E94 0000 call FS_Destory
70:test.c **** }
376 .LM43:
377 0152 80E0 ldi r24,lo8(0)
378 0154 90E0 ldi r25,hi8(0)
379 /* epilogue: frame size=64 */
380 0156 0C94 0000 jmp exit
381 /* epilogue end (size=2) */
382 /* function main size 136 (130) */
389 .comm FS_BPB,2,1
390 .comm FS_FAT,2,1
391 .comm FS_RootDir,2,1
392 .comm FS_CurrentDir,2,1
397 .text
399 Letext:
400 /* File "test.c": code 173 = 0x00ad ( 162), prologues 5, epilogues 6 */
DEFINED SYMBOLS
*ABS*:00000000 test.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccIxaaaa.s:75 .text:00000000 usart_putchar
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccIxaaaa.s:111 .text:0000001c usart_getchar
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccIxaaaa.s:135 .text:00000026 InitIO
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccIxaaaa.s:200 .text:0000004a main
*COM*:00000002 FS_BPB
*COM*:00000002 FS_FAT
*COM*:00000002 FS_RootDir
*COM*:00000002 FS_CurrentDir
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccIxaaaa.s:399 .text:0000015a Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
fdevopen
__stack
FS_Initialize
printf
puts
FS_ChangeDir
FS_Open
FS_Read
__iob
fputc
FS_Close
FS_Destory
exit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -