📄 tc0counter.lst
字号:
172 003c 28EE ldi r18,lo8(1000)
173 003e 33E0 ldi r19,hi8(1000)
174 0040 B901 movw r22,r18
175 0042 0E94 0000 call __udivmodhi4
176 0046 D801 movw r26,r16
177 0048 6D93 st X+,r22
178 004a 7C93 st X,r23
40:TC0counter.c **** i=i%1000;
180 .LM10:
181 004c CF01 movw r24,r30
182 004e B901 movw r22,r18
183 0050 0E94 0000 call __udivmodhi4
184 0054 9C01 movw r18,r24
41:TC0counter.c **** p[1]=i/100;
186 .LM11:
187 0056 E4E6 ldi r30,lo8(100)
188 0058 F0E0 ldi r31,hi8(100)
189 005a BF01 movw r22,r30
190 005c 0E94 0000 call __udivmodhi4
191 0060 E801 movw r28,r16
192 0062 6A83 std Y+2,r22
193 0064 7B83 std Y+3,r23
42:TC0counter.c **** i=i%100;
195 .LM12:
196 0066 C901 movw r24,r18
197 0068 BF01 movw r22,r30
198 006a 0E94 0000 call __udivmodhi4
199 006e 9C01 movw r18,r24
43:TC0counter.c **** p[2]=i/10;
201 .LM13:
202 0070 EAE0 ldi r30,lo8(10)
203 0072 F0E0 ldi r31,hi8(10)
204 0074 BF01 movw r22,r30
205 0076 0E94 0000 call __udivmodhi4
206 007a 6C83 std Y+4,r22
207 007c 7D83 std Y+5,r23
44:TC0counter.c **** i=i%10;
209 .LM14:
210 007e C901 movw r24,r18
211 0080 BF01 movw r22,r30
212 0082 0E94 0000 call __udivmodhi4
45:TC0counter.c **** p[3]=i;
214 .LM15:
215 0086 8E83 std Y+6,r24
216 0088 9F83 std Y+7,r25
217 /* epilogue: frame size=0 */
218 008a DF91 pop r29
219 008c CF91 pop r28
220 008e 1F91 pop r17
221 0090 0F91 pop r16
222 0092 0895 ret
223 /* epilogue end (size=5) */
224 /* function Process size 50 (41) */
226 .Lscope1:
228 .global Init_IO
230 Init_IO:
46:TC0counter.c **** //int j;
47:TC0counter.c **** //for(j=0;j<4;j++,p++)
48:TC0counter.c **** //Data[j]= *p;
49:TC0counter.c **** }
50:TC0counter.c ****
51:TC0counter.c ****
52:TC0counter.c **** void Init_IO(void) //初始化I/O口
53:TC0counter.c **** {
232 .LM16:
233 /* prologue: frame size=0 */
234 /* prologue end (size=0) */
54:TC0counter.c **** DDRA=0xff; //设置A口为推挽1输出
236 .LM17:
237 0094 8FEF ldi r24,lo8(-1)
238 0096 8ABB out 58-0x20,r24
55:TC0counter.c **** PORTA=0xff;
240 .LM18:
241 0098 8BBB out 59-0x20,r24
56:TC0counter.c **** DDRC=0xff; //设置C口为不带上拉电阻的输入
243 .LM19:
244 009a 84BB out 52-0x20,r24
57:TC0counter.c **** PORTC=0xff;
246 .LM20:
247 009c 85BB out 53-0x20,r24
58:TC0counter.c **** DDRD=0x00; //设置D口为推挽1输出;
249 .LM21:
250 009e 11BA out 49-0x20,__zero_reg__
59:TC0counter.c **** PORTD=0x00;
252 .LM22:
253 00a0 12BA out 50-0x20,__zero_reg__
254 /* epilogue: frame size=0 */
255 00a2 0895 ret
256 /* epilogue end (size=1) */
257 /* function Init_IO size 8 (7) */
259 .Lscope2:
261 .global main
263 main:
60:TC0counter.c **** }
61:TC0counter.c ****
62:TC0counter.c ****
63:TC0counter.c **** int main(void)
64:TC0counter.c **** {
265 .LM23:
266 /* prologue: frame size=0 */
267 00a4 C0E0 ldi r28,lo8(__stack - 0)
268 00a6 D0E0 ldi r29,hi8(__stack - 0)
269 00a8 DEBF out __SP_H__,r29
270 00aa CDBF out __SP_L__,r28
271 /* prologue end (size=4) */
65:TC0counter.c **** uint i,Load;
66:TC0counter.c **** Init_IO(); //初始化I/O口
273 .LM24:
274 00ac 0E94 0000 call Init_IO
67:TC0counter.c **** PORTA=0xff; //点亮测试所有的数码管
276 .LM25:
277 00b0 8FEF ldi r24,lo8(-1)
278 00b2 8BBB out 59-0x20,r24
68:TC0counter.c **** PORTC=0x00;
280 .LM26:
281 00b4 15BA out 53-0x20,__zero_reg__
282 00b6 A0EA ldi r26,lo8(4000)
283 00b8 BFE0 ldi r27,hi8(4000)
284 00ba C0E0 ldi r28,hlo8(4000)
285 00bc D0E0 ldi r29,hhi8(4000)
286 00be 28EE ldi r18,lo8(1000)
287 00c0 33E0 ldi r19,hi8(1000)
288 .L30:
289 .LBB6:
290 .LBB7:
291 .LBB8:
292 .LBB9:
294 .Ltext3:
296 .LM27:
297 00c2 CD01 movw r24,r26
298 /* #APP */
299 00c4 0197 1: sbiw r24,1
300 00c6 F1F7 brne 1b
301 /* #NOAPP */
302 .LBE9:
303 .LBE8:
304 .LBE7:
305 .LBE6:
307 .Ltext4:
69:TC0counter.c **** for(i=0;i<1001;i++)
309 .LM28:
310 00c8 2150 subi r18,lo8(-(-1))
311 00ca 3040 sbci r19,hi8(-(-1))
312 00cc 37FF sbrs r19,7
313 00ce F9CF rjmp .L30
70:TC0counter.c **** _delay_ms(2); //显示延时
71:TC0counter.c **** PORTC=0xff; //数码管熄灭,进入计数器状态
315 .LM29:
316 00d0 8FEF ldi r24,lo8(-1)
317 00d2 85BB out 53-0x20,r24
72:TC0counter.c **** TCCR0=0x06;
319 .LM30:
320 00d4 86E0 ldi r24,lo8(6)
321 00d6 83BF out 83-0x20,r24
73:TC0counter.c **** TCNT0=CNT;
323 .LM31:
324 00d8 8091 0000 lds r24,CNT
325 00dc 82BF out 82-0x20,r24
74:TC0counter.c **** while( (PIND&0x01)==0)
75:TC0counter.c **** {
76:TC0counter.c **** uint j;
77:TC0counter.c **** if(CNT!=9999)
78:TC0counter.c **** {
79:TC0counter.c **** CNT=CNT+1;
80:TC0counter.c **** TCNT0=CNT;
81:TC0counter.c **** Process(TCNT0,Data); //计数值处理
82:TC0counter.c **** Display(Data); //动态扫描显示
327 .LM32:
328 00de 8099 sbic 48-0x20,0
329 00e0 1CC0 rjmp .L38
330 .L34:
331 .LBB10:
333 .LM33:
334 00e2 8091 0000 lds r24,CNT
335 00e6 9091 0000 lds r25,(CNT)+1
336 00ea 27E2 ldi r18,hi8(9999)
337 00ec 8F30 cpi r24,lo8(9999)
338 00ee 9207 cpc r25,r18
339 00f0 91F0 breq .L31
341 .LM34:
342 00f2 0196 adiw r24,1
343 00f4 9093 0000 sts (CNT)+1,r25
344 00f8 8093 0000 sts CNT,r24
346 .LM35:
347 00fc 8091 0000 lds r24,CNT
348 0100 82BF out 82-0x20,r24
350 .LM36:
351 0102 82B7 in r24,82-0x20
352 0104 60E0 ldi r22,lo8(Data)
353 0106 70E0 ldi r23,hi8(Data)
354 0108 9927 clr r25
355 010a 0E94 0000 call Process
357 .LM37:
358 010e 80E0 ldi r24,lo8(Data)
359 0110 90E0 ldi r25,hi8(Data)
360 0112 0E94 0000 call Display
361 .L31:
362 .LBE10:
363 0116 809B sbis 48-0x20,0
364 0118 E4CF rjmp .L34
365 .L38:
83:TC0counter.c **** }
84:TC0counter.c **** }
85:TC0counter.c **** Display(Data);
367 .LM38:
368 011a 80E0 ldi r24,lo8(Data)
369 011c 90E0 ldi r25,hi8(Data)
370 011e 0E94 0000 call Display
86:TC0counter.c **** return 0;
87:TC0counter.c **** }
372 .LM39:
373 0122 80E0 ldi r24,lo8(0)
374 0124 90E0 ldi r25,hi8(0)
375 /* epilogue: frame size=0 */
376 0126 0C94 0000 jmp exit
377 /* epilogue end (size=2) */
378 /* function main size 69 (63) */
386 .Lscope3:
387 .comm Key_Up,1,1
388 .comm Key_Down,1,1
394 .text
396 Letext:
397 /* File "TC0counter.c": code 153 = 0x0099 ( 136), prologues 8, epilogues 9 */
DEFINED SYMBOLS
*ABS*:00000000 TC0counter.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/cc4cbaaa.s:58 .bss:00000000 CNT
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc4cbaaa.s:64 .bss:00000002 Data
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc4cbaaa.s:70 .data:00000000 Table
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc4cbaaa.s:86 .text:00000000 Display
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc4cbaaa.s:159 .text:00000030 Process
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc4cbaaa.s:230 .text:00000094 Init_IO
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc4cbaaa.s:263 .text:000000a4 main
*COM*:00000001 Key_Up
*COM*:00000001 Key_Down
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc4cbaaa.s:396 .text:0000012a Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__udivmodhi4
__stack
exit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -