📄 debugprint.lst
字号:
1 .file "debugprint.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:
64 .global usart_putchar
66 usart_putchar:
1:debugprint.c **** /*
2:debugprint.c **** debugprint.c
3:debugprint.c **** UART初始化标准I/O
4:debugprint.c ****
5:debugprint.c **** 外部4MHz晶振
6:debugprint.c ****
7:debugprint.c **** 芯艺 2004-09-11
8:debugprint.c **** */
9:debugprint.c ****
10:debugprint.c ****
11:debugprint.c **** #include <avr/io.h>
12:debugprint.c ****
13:debugprint.c **** #include <stdio.h>
14:debugprint.c ****
15:debugprint.c **** //uart写一字节数据
16:debugprint.c **** int usart_putchar(char c)
17:debugprint.c **** {
68 .LM1:
69 /* prologue: frame size=0 */
70 0000 CF93 push r28
71 /* prologue end (size=1) */
72 0002 C82F mov r28,r24
18:debugprint.c **** if(c=='\n')
74 .LM2:
75 0004 8A30 cpi r24,lo8(10)
76 0006 11F4 brne .L4
19:debugprint.c **** usart_putchar('\r');
78 .LM3:
79 0008 8DE0 ldi r24,lo8(13)
80 000a FADF rcall usart_putchar
20:debugprint.c **** loop_until_bit_is_set(UCSRA,UDRE);
82 .LM4:
83 .L4:
84 000c 5D9B sbis 43-0x20,5
85 000e FECF rjmp .L4
21:debugprint.c **** UDR=c;
87 .LM5:
88 0010 CCB9 out 44-0x20,r28
22:debugprint.c **** return 0;
23:debugprint.c **** }
90 .LM6:
91 0012 80E0 ldi r24,lo8(0)
92 0014 90E0 ldi r25,hi8(0)
93 /* epilogue: frame size=0 */
94 0016 CF91 pop r28
95 0018 0895 ret
96 /* epilogue end (size=2) */
97 /* function usart_putchar size 13 (10) */
100 .global usart_getchar
102 usart_getchar:
24:debugprint.c **** //uart读一字节数据
25:debugprint.c **** int usart_getchar(void)
26:debugprint.c **** {
104 .LM7:
105 /* prologue: frame size=0 */
106 /* prologue end (size=0) */
27:debugprint.c **** loop_until_bit_is_set(UCSRA,RXC);
108 .LM8:
109 .L9:
110 001a 5F9B sbis 43-0x20,7
111 001c FECF rjmp .L9
28:debugprint.c **** return UDR;
113 .LM9:
114 001e 8CB1 in r24,44-0x20
115 0020 9927 clr r25
29:debugprint.c **** }
117 .LM10:
118 /* epilogue: frame size=0 */
119 0022 0895 ret
120 /* epilogue end (size=1) */
121 /* function usart_getchar size 5 (4) */
124 .global IoInit
126 IoInit:
30:debugprint.c ****
31:debugprint.c **** void IoInit(void)
32:debugprint.c **** {
128 .LM11:
129 /* prologue: frame size=0 */
130 /* prologue end (size=0) */
33:debugprint.c **** //初始化uart
34:debugprint.c **** UCSRB=_BV(RXEN)|_BV(TXEN);/*(1<<RXCIE)|(1<<TXCIE)|*/
132 .LM12:
133 0024 88E1 ldi r24,lo8(24)
134 0026 8AB9 out 42-0x20,r24
35:debugprint.c **** UBRRL=25; //9600 baud 6MHz:38 4MHz:25
136 .LM13:
137 0028 89E1 ldi r24,lo8(25)
138 002a 89B9 out 41-0x20,r24
36:debugprint.c ****
37:debugprint.c **** //打开标准I/O流
38:debugprint.c **** fdevopen(usart_putchar,usart_getchar,0);
140 .LM14:
141 002c 40E0 ldi r20,lo8(0)
142 002e 50E0 ldi r21,hi8(0)
143 0030 60E0 ldi r22,lo8(pm(usart_getchar))
144 0032 70E0 ldi r23,hi8(pm(usart_getchar))
145 0034 80E0 ldi r24,lo8(pm(usart_putchar))
146 0036 90E0 ldi r25,hi8(pm(usart_putchar))
147 0038 00D0 rcall fdevopen
39:debugprint.c **** }
149 .LM15:
150 /* epilogue: frame size=0 */
151 003a 0895 ret
152 /* epilogue end (size=1) */
153 /* function IoInit size 12 (11) */
155 .text
157 Letext:
158 /* File "debugprint.c": code 30 = 0x001e ( 25), prologues 1, epilogues 4 */
DEFINED SYMBOLS
*ABS*:00000000 debugprint.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/cc0waaaa.s:66 .text:00000000 usart_putchar
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc0waaaa.s:102 .text:0000001a usart_getchar
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc0waaaa.s:126 .text:00000024 IoInit
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc0waaaa.s:157 .text:0000003c Letext
*ABS*:00000000 *ABS*
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
fdevopen
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -