📄 main.lst
字号:
1 .file "main.c"
2 .arch atmega8
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:
55 .global delay
57 delay:
1:main.c ****
2:main.c **** #include <avr/io.h>
3:main.c **** //#include <avr/delay.h>
4:main.c **** //宏定义
5:main.c **** #define uchar unsigned char
6:main.c **** #define uint unsigned int
7:main.c **** void delay(int x)
{ int xx=100;
while(x-->0)
while(xx-->0);
}
8:main.c ****
59 .LM1:
60 /* prologue: frame size=4 */
61 0000 CF93 push r28
62 0002 DF93 push r29
63 0004 CDB7 in r28,__SP_L__
64 0006 DEB7 in r29,__SP_H__
65 0008 2497 sbiw r28,4
66 000a 0FB6 in __tmp_reg__,__SREG__
67 000c F894 cli
68 000e DEBF out __SP_H__,r29
69 0010 0FBE out __SREG__,__tmp_reg__
70 0012 CDBF out __SP_L__,r28
71 /* prologue end (size=10) */
72 0014 8983 std Y+1,r24
73 0016 9A83 std Y+2,r25
74 0018 84E6 ldi r24,lo8(100)
75 001a 90E0 ldi r25,hi8(100)
76 001c 8B83 std Y+3,r24
77 001e 9C83 std Y+4,r25
78 .L2:
9:main.c **** //SPI初始化
80 .LM2:
81 0020 8981 ldd r24,Y+1
82 0022 9A81 ldd r25,Y+2
83 0024 9C01 movw r18,r24
84 0026 0197 sbiw r24,1
85 0028 8983 std Y+1,r24
86 002a 9A83 std Y+2,r25
87 002c 1216 cp __zero_reg__,r18
88 002e 1306 cpc __zero_reg__,r19
89 0030 64F4 brge .L1
90 .L4:
10:main.c **** void spi_init(void)
92 .LM3:
93 0032 FE01 movw r30,r28
94 0034 3396 adiw r30,3
95 0036 8081 ld r24,Z
96 0038 9181 ldd r25,Z+1
97 003a 9C01 movw r18,r24
98 003c 0197 sbiw r24,1
99 003e 8083 st Z,r24
100 0040 9183 std Z+1,r25
101 0042 1216 cp __zero_reg__,r18
102 0044 1306 cpc __zero_reg__,r19
103 0046 64F7 brge .L2
104 0048 F4CF rjmp .L4
105 .L1:
106 /* epilogue: frame size=4 */
107 004a 2496 adiw r28,4
108 004c 0FB6 in __tmp_reg__,__SREG__
109 004e F894 cli
110 0050 DEBF out __SP_H__,r29
111 0052 0FBE out __SREG__,__tmp_reg__
112 0054 CDBF out __SP_L__,r28
113 0056 DF91 pop r29
114 0058 CF91 pop r28
115 005a 0895 ret
116 /* epilogue end (size=9) */
117 /* function delay size 46 (27) */
122 .Lscope0:
124 .global spi_init
126 spi_init:
11:main.c **** {
12:main.c **** //OSCCAL=0x9d; // 8M系统内部时钟校准
13:main.c **** DDRB|=0Xf8;
14:main.c **** SPSR =_BV(SPI2X); // 设置SPI时钟倍速
15:main.c **** SPCR =_BV(SPE) |_BV(MSTR); // 使能SPI接口,主机模式,4M时钟 0X50
128 .LM4:
129 /* prologue: frame size=0 */
130 005c CF93 push r28
131 005e DF93 push r29
132 0060 CDB7 in r28,__SP_L__
133 0062 DEB7 in r29,__SP_H__
134 /* prologue end (size=4) */
16:main.c **** }
17:main.c ****
136 .LM5:
137 0064 8091 3700 lds r24,55
138 0068 886F ori r24,lo8(-8)
139 006a 8093 3700 sts 55,r24
18:main.c ****
141 .LM6:
142 006e 81E0 ldi r24,lo8(1)
143 0070 8093 2E00 sts 46,r24
19:main.c **** int main()
145 .LM7:
146 0074 80E5 ldi r24,lo8(80)
147 0076 8093 2D00 sts 45,r24
148 /* epilogue: frame size=0 */
149 007a DF91 pop r29
150 007c CF91 pop r28
151 007e 0895 ret
152 /* epilogue end (size=3) */
153 /* function spi_init size 18 (11) */
155 .Lscope1:
157 .global main
159 main:
20:main.c **** {
spi_init();
DDRC=0XFF;
PORTC=0XFF;
uchar jtd1,jtd2,jtd_row,init_jtd1=0xfe,init_jtd2=0xff;
i
21:main.c **** SPDR=0xff;
while((SPSR&0x80)==0); //等待数据传送完毕,置一
SPDR=0xff;
while((SPSR&0x80)==0);
22:main.c ****
23:main.c **** }
24:main.c **** /**/...
161 .LM8:
162 /* prologue: frame size=7 */
163 0080 C0E0 ldi r28,lo8(__stack - 7)
164 0082 D0E0 ldi r29,hi8(__stack - 7)
165 0084 DEBF out __SP_H__,r29
166 0086 CDBF out __SP_L__,r28
167 /* prologue end (size=4) */
169 .LM9:
170 0088 E9DF rcall spi_init
172 .LM10:
173 008a 8FEF ldi r24,lo8(-1)
174 008c 8093 3400 sts 52,r24
176 .LM11:
177 0090 8FEF ldi r24,lo8(-1)
178 0092 8093 3500 sts 53,r24
180 .LM12:
181 0096 8EEF ldi r24,lo8(-2)
182 0098 8C83 std Y+4,r24
183 009a 8FEF ldi r24,lo8(-1)
184 009c 8D83 std Y+5,r24
186 .LM13:
187 009e 1E82 std Y+6,__zero_reg__
188 00a0 1F82 std Y+7,__zero_reg__
189 .L8:
191 .LM14:
192 00a2 8FEF ldi r24,lo8(-1)
193 00a4 8093 2F00 sts 47,r24
194 .L10:
196 .LM15:
197 00a8 8091 2E00 lds r24,46
198 00ac 8823 tst r24
199 00ae 0CF0 brlt .L11
200 00b0 FBCF rjmp .L10
201 .L11:
203 .LM16:
204 00b2 8FEF ldi r24,lo8(-1)
205 00b4 8093 2F00 sts 47,r24
206 .L12:
208 .LM17:
209 00b8 8091 2E00 lds r24,46
210 00bc 8823 tst r24
211 00be 0CF0 brlt .L13
212 00c0 FBCF rjmp .L12
213 .L13:
215 .LM18:
216 00c2 8981 ldd r24,Y+1
217 00c4 8093 2F00 sts 47,r24
218 .L14:
220 .LM19:
221 00c8 8091 2E00 lds r24,46
222 00cc 8823 tst r24
223 00ce 0CF0 brlt .L15
224 00d0 FBCF rjmp .L14
225 .L15:
227 .LM20:
228 00d2 8A81 ldd r24,Y+2
229 00d4 8093 2F00 sts 47,r24
230 .L16:
232 .LM21:
233 00d8 8091 2E00 lds r24,46
234 00dc 8823 tst r24
235 00de 0CF0 brlt .L17
236 00e0 FBCF rjmp .L16
237 .L17:
239 .LM22:
240 00e2 8091 3800 lds r24,56
241 00e6 8F7B andi r24,lo8(-65)
242 00e8 8093 3800 sts 56,r24
244 .LM23:
245 00ec 8091 3800 lds r24,56
246 00f0 8064 ori r24,lo8(64)
247 00f2 8093 3800 sts 56,r24
249 .LM24:
250 00f6 8091 3800 lds r24,56
251 00fa 8F7B andi r24,lo8(-65)
252 00fc 8093 3800 sts 56,r24
254 .LM25:
255 0100 84E1 ldi r24,lo8(20)
256 0102 90E0 ldi r25,hi8(20)
257 0104 7DDF rcall delay
259 .LM26:
260 0106 8B81 ldd r24,Y+3
261 0108 8F5F subi r24,lo8(-(1))
262 010a 8B83 std Y+3,r24
264 .LM27:
265 010c 8981 ldd r24,Y+1
266 010e 9927 clr r25
267 0110 880F lsl r24
268 0112 991F rol r25
269 0114 8160 ori r24,lo8(1)
270 0116 8983 std Y+1,r24
272 .LM28:
273 0118 8A81 ldd r24,Y+2
274 011a 9927 clr r25
275 011c 880F lsl r24
276 011e 991F rol r25
277 0120 8160 ori r24,lo8(1)
278 0122 8A83 std Y+2,r24
280 .LM29:
281 0124 8B81 ldd r24,Y+3
282 0126 8430 cpi r24,lo8(4)
283 0128 50F0 brlo .L18
285 .LM30:
286 012a 1B82 std Y+3,__zero_reg__
288 .LM31:
289 012c 8C81 ldd r24,Y+4
290 012e 8983 std Y+1,r24
292 .LM32:
293 0130 8D81 ldd r24,Y+5
294 0132 8A83 std Y+2,r24
296 .LM33:
297 0134 8E81 ldd r24,Y+6
298 0136 9F81 ldd r25,Y+7
299 0138 0196 adiw r24,1
300 013a 8E83 std Y+6,r24
301 013c 9F83 std Y+7,r25
302 .L18:
304 .LM34:
305 013e 8E81 ldd r24,Y+6
306 0140 9F81 ldd r25,Y+7
307 0142 883C cpi r24,200
308 0144 9105 cpc r25,__zero_reg__
309 0146 21F4 brne .L19
311 .LM35:
312 0148 8FEF ldi r24,lo8(-1)
313 014a 8C83 std Y+4,r24
315 .LM36:
316 014c 8EEF ldi r24,lo8(-2)
317 014e 8D83 std Y+5,r24
318 .L19:
320 .LM37:
321 0150 8E81 ldd r24,Y+6
322 0152 9F81 ldd r25,Y+7
323 0154 21E0 ldi r18,hi8(400)
324 0156 8039 cpi r24,lo8(400)
325 0158 9207 cpc r25,r18
326 015a 21F4 brne .L20
328 .LM38:
329 015c 8FEF ldi r24,lo8(-1)
330 015e 8C83 std Y+4,r24
332 .LM39:
333 0160 8FEE ldi r24,lo8(-17)
334 0162 8D83 std Y+5,r24
335 .L20:
337 .LM40:
338 0164 8E81 ldd r24,Y+6
339 0166 9F81 ldd r25,Y+7
340 0168 22E0 ldi r18,hi8(600)
341 016a 8835 cpi r24,lo8(600)
342 016c 9207 cpc r25,r18
343 016e 09F0 breq .+2
344 0170 98CF rjmp .L8
346 .LM41:
347 0172 8EEF ldi r24,lo8(-2)
348 0174 8C83 std Y+4,r24
350 .LM42:
351 0176 8FEF ldi r24,lo8(-1)
352 0178 8D83 std Y+5,r24
354 .LM43:
355 017a 1E82 std Y+6,__zero_reg__
356 017c 1F82 std Y+7,__zero_reg__
357 017e 91CF rjmp .L8
358 /* epilogue: frame size=7 */
359 /* epilogue: noreturn */
360 /* epilogue end (size=0) */
361 /* function main size 128 (124) */
371 .Lscope2:
372 .text
374 Letext:
375 /* File "main.c": code 192 = 0x00c0 ( 162), prologues 18, epilogues 12 */
DEFINED SYMBOLS
*ABS*:00000000 main.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/ccYXaaaa.s:57 .text:00000000 delay
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/ccYXaaaa.s:126 .text:0000005c spi_init
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/ccYXaaaa.s:159 .text:00000080 main
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/ccYXaaaa.s:374 .text:00000180 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -