📄 test1.lst
字号:
1 .file "test1.c"
2 .arch atmega128
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:
52 .global main
54 main:
1:test1.c **** /**************************************************
2:test1.c **** 文件名: test1.c
3:test1.c **** 功能:使用定时器0实现定时0.5秒,控制黄灯的闪烁
4:test1.c **** 说明:
5:test1.c **** ***************************************************/
6:test1.c ****
7:test1.c **** #include <avr/io.h>
8:test1.c **** #define uchar unsigned char
9:test1.c **** #define SET_LED PORTA&=0XFE //PA0口输出低电平,黄灯亮
10:test1.c **** #define CLR_LED PORTA|=0X01//PA0口输出高电平,黄灯灭
11:test1.c ****
12:test1.c **** /***************************************************
13:test1.c **** *名称:main()
14:test1.c **** *功能:初始化I/O及定时器0,定时时间为0.5s
15:test1.c **** *入口参数:无
16:test1.c **** *出口参数:无
17:test1.c **** *****************************************************/
18:test1.c **** int main( void )
19:test1.c **** {
56 .LM1:
57 /* prologue: frame size=0 */
58 0000 C0E0 ldi r28,lo8(__stack - 0)
59 0002 D0E0 ldi r29,hi8(__stack - 0)
60 0004 DEBF out __SP_H__,r29
61 0006 CDBF out __SP_L__,r28
62 /* prologue end (size=4) */
20:test1.c **** uchar i,j=0;
64 .LM2:
65 0008 20E0 ldi r18,lo8(0)
21:test1.c **** //设置PA0 口为输出
22:test1.c **** DDRA=_BV(PA0);
67 .LM3:
68 000a 81E0 ldi r24,lo8(1)
69 000c 8ABB out 58-0x20,r24
23:test1.c **** PORTA=_BV(PA0);
71 .LM4:
72 000e 8BBB out 59-0x20,r24
24:test1.c ****
25:test1.c **** TCNT0=0; //初始化TCNT0
74 .LM5:
75 0010 22BF out 82-0x20,r18
26:test1.c **** TCCR0=_BV(CS02); // 预分频 ck/64
77 .LM6:
78 0012 84E0 ldi r24,lo8(4)
79 0014 83BF out 83-0x20,r24
80 .L21:
27:test1.c **** while (1)
28:test1.c **** {
29:test1.c **** //查询定时器方式等待0.5秒,7372800 /64 /256 /225 = 2Hz
30:test1.c **** for(i=0;i<225;i++)
82 .LM7:
83 0016 90E0 ldi r25,lo8(0)
84 .L22:
31:test1.c **** {
32:test1.c **** loop_until_bit_is_set(TIFR,TOV0);
86 .LM8:
87 0018 06B6 in __tmp_reg__,86-0x20
88 001a 00FE sbrs __tmp_reg__,0
89 001c FDCF rjmp .L22
33:test1.c **** //写入逻辑1 清零TOV0 位
34:test1.c **** TIFR|=_BV(TOV0);
91 .LM9:
92 001e 86B7 in r24,86-0x20
93 0020 8160 ori r24,lo8(1)
94 0022 86BF out 86-0x20,r24
96 .LM10:
97 0024 9F5F subi r25,lo8(-(1))
98 0026 913E cpi r25,lo8(-31)
99 0028 B8F3 brlo .L22
35:test1.c **** }
36:test1.c **** //反向LED 控制脚
37:test1.c **** if(j)
101 .LM11:
102 002a 2223 tst r18
103 002c 19F0 breq .L11
38:test1.c **** SET_LED,j=0;
105 .LM12:
106 002e D898 cbi 59-0x20,0
107 0030 20E0 ldi r18,lo8(0)
108 0032 F1CF rjmp .L21
109 .L11:
39:test1.c **** else
40:test1.c **** CLR_LED,j=1;
111 .LM13:
112 0034 D89A sbi 59-0x20,0
113 0036 21E0 ldi r18,lo8(1)
114 0038 EECF rjmp .L21
115 /* epilogue: frame size=0 */
116 /* epilogue: noreturn */
117 /* epilogue end (size=0) */
118 /* function main size 29 (25) */
122 .text
124 Letext:
125 /* File "test1.c": code 29 = 0x001d ( 25), prologues 4, epilogues 0 */
DEFINED SYMBOLS
*ABS*:00000000 test1.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\DOCUME~1\Andrew\LOCALS~1\Temp/ccqcbaaa.s:54 .text:00000000 main
C:\DOCUME~1\Andrew\LOCALS~1\Temp/ccqcbaaa.s:124 .text:0000003a Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -