📄 main.lst
字号:
1 .file "main.c"
2 .arch at90s2313
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:
47 .global DelayMs
49 DelayMs:
1:main.c **** /*
2:main.c **** Watchdog测试程序
3:main.c **** main.c
4:main.c **** MCU:AT90S2313
5:main.c **** 时钟:4MHz
6:main.c ****
7:main.c **** 芯艺 2004-09-18
8:main.c **** */
9:main.c ****
10:main.c **** #include <avr/io.h>
11:main.c **** #include <avr/wdt.h>
12:main.c **** #include <avr/delay.h>
13:main.c ****
14:main.c **** #define uchar unsigned char
15:main.c **** #define uint unsigned int
16:main.c ****
17:main.c **** #define CLR_LED PORTD&=0XEF //PD4接发光管
18:main.c **** #define SET_LED PORTD|=0X10
19:main.c ****
20:main.c ****
21:main.c **** //误差不会太大的延时1ms函数
22:main.c **** void DelayMs(uint ms)
23:main.c **** {
51 .LM1:
52 /* prologue: frame size=0 */
53 /* prologue end (size=0) */
54 0000 482F mov r20,r24
55 0002 592F mov r21,r25
24:main.c **** uint i;
25:main.c **** for(i=0;i<ms;i++)
57 .LM2:
58 .LBB2:
59 0004 20E0 ldi r18,lo8(0)
60 0006 30E0 ldi r19,hi8(0)
61 0008 2817 cp r18,r24
62 000a 3907 cpc r19,r25
63 000c 48F4 brsh .L9
64 .L7:
26:main.c **** _delay_loop_2(4 *250);
66 .LM3:
68 .Ltext1:
1:C:/WinAVR/avr/include/avr/delay.h **** /* Copyright (c) 2002, Marek Michalkiewicz
2:C:/WinAVR/avr/include/avr/delay.h **** All rights reserved.
3:C:/WinAVR/avr/include/avr/delay.h ****
4:C:/WinAVR/avr/include/avr/delay.h **** Redistribution and use in source and binary forms, with or without
5:C:/WinAVR/avr/include/avr/delay.h **** modification, are permitted provided that the following conditions are met:
6:C:/WinAVR/avr/include/avr/delay.h ****
7:C:/WinAVR/avr/include/avr/delay.h **** * Redistributions of source code must retain the above copyright
8:C:/WinAVR/avr/include/avr/delay.h **** notice, this list of conditions and the following disclaimer.
9:C:/WinAVR/avr/include/avr/delay.h **** * Redistributions in binary form must reproduce the above copyright
10:C:/WinAVR/avr/include/avr/delay.h **** notice, this list of conditions and the following disclaimer in
11:C:/WinAVR/avr/include/avr/delay.h **** the documentation and/or other materials provided with the
12:C:/WinAVR/avr/include/avr/delay.h **** distribution.
13:C:/WinAVR/avr/include/avr/delay.h ****
14:C:/WinAVR/avr/include/avr/delay.h **** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15:C:/WinAVR/avr/include/avr/delay.h **** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16:C:/WinAVR/avr/include/avr/delay.h **** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17:C:/WinAVR/avr/include/avr/delay.h **** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
18:C:/WinAVR/avr/include/avr/delay.h **** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19:C:/WinAVR/avr/include/avr/delay.h **** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20:C:/WinAVR/avr/include/avr/delay.h **** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21:C:/WinAVR/avr/include/avr/delay.h **** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22:C:/WinAVR/avr/include/avr/delay.h **** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23:C:/WinAVR/avr/include/avr/delay.h **** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24:C:/WinAVR/avr/include/avr/delay.h **** POSSIBILITY OF SUCH DAMAGE. */
25:C:/WinAVR/avr/include/avr/delay.h ****
26:C:/WinAVR/avr/include/avr/delay.h **** /* $Id: delay.h,v 1.2 2002/12/12 11:41:01 joerg_wunsch Exp $ */
27:C:/WinAVR/avr/include/avr/delay.h ****
28:C:/WinAVR/avr/include/avr/delay.h **** /*
29:C:/WinAVR/avr/include/avr/delay.h **** avr/delay.h - loops for small accurate delays
30:C:/WinAVR/avr/include/avr/delay.h **** */
31:C:/WinAVR/avr/include/avr/delay.h ****
32:C:/WinAVR/avr/include/avr/delay.h **** #ifndef _AVR_DELAY_H_
33:C:/WinAVR/avr/include/avr/delay.h **** #define _AVR_DELAY_H_ 1
34:C:/WinAVR/avr/include/avr/delay.h ****
35:C:/WinAVR/avr/include/avr/delay.h **** /* 8-bit count, 3 cycles/loop */
36:C:/WinAVR/avr/include/avr/delay.h **** static inline void
37:C:/WinAVR/avr/include/avr/delay.h **** _delay_loop_1(unsigned char __count)
38:C:/WinAVR/avr/include/avr/delay.h **** {
39:C:/WinAVR/avr/include/avr/delay.h **** asm volatile (
40:C:/WinAVR/avr/include/avr/delay.h **** "1: dec %0" "\n\t"
41:C:/WinAVR/avr/include/avr/delay.h **** "brne 1b"
42:C:/WinAVR/avr/include/avr/delay.h **** : "=r" (__count)
43:C:/WinAVR/avr/include/avr/delay.h **** : "0" (__count)
44:C:/WinAVR/avr/include/avr/delay.h **** );
45:C:/WinAVR/avr/include/avr/delay.h **** }
46:C:/WinAVR/avr/include/avr/delay.h ****
47:C:/WinAVR/avr/include/avr/delay.h **** /* 16-bit count, 4 cycles/loop */
48:C:/WinAVR/avr/include/avr/delay.h **** static inline void
49:C:/WinAVR/avr/include/avr/delay.h **** _delay_loop_2(unsigned int __count)
50:C:/WinAVR/avr/include/avr/delay.h **** {
70 .LM4:
71 .LBB3:
72 000e 88EE ldi r24,lo8(1000)
73 0010 93E0 ldi r25,hi8(1000)
51:C:/WinAVR/avr/include/avr/delay.h **** asm volatile (
75 .LM5:
76 /* #APP */
77 0012 0197 1: sbiw r24,1
78 0014 F1F7 brne 1b
80 .Ltext2:
82 .LM6:
83 /* #NOAPP */
84 .LBE3:
85 0016 2F5F subi r18,lo8(-(1))
86 0018 3F4F sbci r19,hi8(-(1))
87 001a 2417 cp r18,r20
88 001c 3507 cpc r19,r21
89 001e B8F3 brlo .L7
90 .L9:
27:main.c **** }
92 .LM7:
93 0020 0895 ret
94 .LBE2:
95 /* epilogue: frame size=0 */
96 /* epilogue: noreturn */
97 /* epilogue end (size=0) */
98 /* function DelayMs size 19 (19) */
107 .global main
109 main:
28:main.c ****
29:main.c **** int main(void)
30:main.c **** {
111 .LM8:
112 /* prologue: frame size=0 */
113 0022 C0E0 ldi r28,lo8(__stack - 0)
114 0024 D0E0 ldi r29,hi8(__stack - 0)
115 0026 DEBF out __SP_H__,r29
116 0028 CDBF out __SP_L__,r28
117 /* prologue end (size=4) */
31:main.c **** DDRD=0X10;
119 .LM9:
120 002a 80E1 ldi r24,lo8(16)
121 002c 81BB out 49-0x20,r24
32:main.c **** PORTD=0X10;
123 .LM10:
124 002e 82BB out 50-0x20,r24
33:main.c ****
34:main.c **** wdt_enable(WDTO_1S);
126 .LM11:
127 0030 88E1 ldi r24,lo8(24)
128 0032 90E0 ldi r25,hi8(24)
129 0034 2EE0 ldi r18,lo8(14)
130 /* #APP */
131 0036 0FB6 in __tmp_reg__,__SREG__
132 0038 F894 cli
133 003a A895 wdr
134 003c 81BD out 33,r24
135 003e 0FBE out __SREG__,__tmp_reg__
136 0040 21BD out 33,r18
35:main.c **** wdt_reset();
138 .LM12:
139 0042 A895 wdr
36:main.c ****
37:main.c **** DelayMs(500);
141 .LM13:
142 /* #NOAPP */
143 0044 84EF ldi r24,lo8(500)
144 0046 91E0 ldi r25,hi8(500)
145 0048 DBDF rcall DelayMs
38:main.c ****
39:main.c **** CLR_LED;
147 .LM14:
148 004a 9498 cbi 50-0x20,4
40:main.c ****
41:main.c **** DelayMs(5000);
150 .LM15:
151 004c 88E8 ldi r24,lo8(5000)
152 004e 93E1 ldi r25,hi8(5000)
153 0050 D7DF rcall DelayMs
42:main.c ****
43:main.c **** SET_LED;
155 .LM16:
156 0052 949A sbi 50-0x20,4
44:main.c **** while(1);
158 .LM17:
159 .L14:
160 0054 FFCF rjmp .L14
45:main.c **** }...
162 .LM18:
163 /* epilogue: frame size=0 */
164 /* epilogue: noreturn */
165 /* epilogue end (size=0) */
166 /* function main size 33 (29) */
168 .text
170 Letext:
171 /* File "main.c": code 52 = 0x0034 ( 48), prologues 4, epilogues 0 */
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__
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccGuaaaa.s:49 .text:00000000 DelayMs
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccGuaaaa.s:109 .text:00000022 main
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccGuaaaa.s:170 .text:00000056 Letext
*ABS*:00000000 *ABS*
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -