📄 wxjtest1.lst
字号:
GAS LISTING C:\DOCUME~1\zhang\LOCALS~1\Temp/ccyqaaaa.s page 1
1 .file "wxjtest1.c"
2 .arch atmega128
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 _PC_ = 2
9 .global __do_copy_data
10 .global __do_clear_bss
11 .stabs "C:\\nut\\app\\wxjuart1/",100,0,0,.Ltext0
12 .stabs "wxjtest1.c",100,0,0,.Ltext0
13 .text
14 .Ltext0:
15 .stabs "gcc2_compiled.",60,0,0,0
16 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
17 .stabs "char:t(0,2)=r(0,2);0;127;",128,0,0,0
18 .stabs "long int:t(0,3)=@s32;r(0,3);0020000000000;0017777777777;",128,0,0,0
19 .stabs "unsigned int:t(0,4)=r(0,4);0000000000000;0000000177777;",128,0,0,0
20 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0000000000000;0037777777777;",128,0,0,0
21 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
22 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0000000000000;01777777777777777777777;",128,0,0,
23 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
24 .stabs "short unsigned int:t(0,9)=r(0,9);0000000000000;0000000177777;",128,0,0,0
25 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
26 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
27 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
28 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0
29 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
30 .stabs "complex int:t(0,15)=s4real:(0,1),0,16;imag:(0,1),16,16;;",128,0,0,0
31 .stabs "complex float:t(0,16)=r(0,16);8;0;",128,0,0,0
32 .stabs "complex double:t(0,17)=r(0,17);8;0;",128,0,0,0
33 .stabs "complex long double:t(0,18)=r(0,18);8;0;",128,0,0,0
34 .stabs "__builtin_va_list:t(0,19)=*(0,20)=(0,20)",128,0,0,0
35 .stabs "_Bool:t(0,21)=@s8;-16;",128,0,0,0
36 .stabs "wxjtest1.c",130,0,0,0
37 .stabs "c:/avrgcc/avr/include/io.h",130,0,0,0
38 .stabs "c:/avrgcc/avr/include/iom128.h",130,0,0,0
39 .stabs "c:/avrgcc/avr/include/sfr_defs.h",130,0,0,0
40 .stabn 162,0,0,0
41 .stabn 162,0,0,0
42 .stabn 162,0,0,0
43 .stabs "c:/avrgcc/avr/include/interrupt.h",130,0,0,0
44 .stabn 162,0,0,0
45 .stabs "c:/avrgcc/avr/include/signal.h",130,0,0,0
46 .stabs "c:/avrgcc/avr/include/sig-avr.h",130,0,0,0
47 .stabn 162,0,0,0
48 .stabn 162,0,0,0
49 .stabs "/avrgcc/include/fs/uromfs.h",130,0,0,0
50 .stabs "c:/avrgcc/avr/include/pgmspace.h",130,0,0,0
51 .stabs "c:/avrgcc/lib/gcc-lib/avr/3.2/include/stddef.h",130,0,0,0
52 .stabs "size_t:t(10,1)=(0,4)",128,0,201,0
53 .stabn 162,0,0,0
54 .stabs "prog_void:t(9,1)=(9,2)=(9,2)",128,0,69,0
55 .stabs "prog_char:t(9,3)=(9,4)=@s8;r(9,4);-128;127;",128,0,70,0
56 .stabs "prog_uchar:t(9,5)=(9,6)=@s8;r(9,6);0;255;",128,0,71,0
57 .stabs "prog_int:t(9,7)=(9,8)=r(9,8);-32768;32767;",128,0,72,0
GAS LISTING C:\DOCUME~1\zhang\LOCALS~1\Temp/ccyqaaaa.s page 2
58 .stabs "prog_long:t(9,9)=(9,10)=@s32;r(9,10);0020000000000;0017777777777;",128,0,73,0
59 .stabs "prog_long_long:t(9,11)=(9,12)=@s64;r(9,12);01000000000000000000000;0777777777777777777777;
60 .stabs "c:/avrgcc/avr/include/ina90.h",130,0,0,0
61 .stabs "c:/avrgcc/avr/include/eeprom.h",130,0,0,0
62 .stabs "c:/avrgcc/lib/gcc-lib/avr/3.2/include/stddef.h",130,0,0,0
63 .stabn 162,0,0,0
64 .stabn 162,0,0,0
65 .stabn 162,0,0,0
66 .stabn 162,0,0,0
67 .stabs "/avrgcc/include/sys/types.h",130,0,0,0
68 .stabs "/avrgcc/include/compiler.h",130,0,0,0
69 .stabn 162,0,0,0
70 .stabs "u_char:t(14,1)=(0,11)",128,0,113,0
71 .stabs "u_short:t(14,2)=(0,9)",128,0,115,0
72 .stabs "u_int:t(14,3)=(0,4)",128,0,117,0
73 .stabs "u_long:t(14,4)=(0,5)",128,0,119,0
74 .stabs "u_longlong:t(14,5)=(0,7)",128,0,121,0
75 .stabs "HANDLE:t(14,6)=(14,7)=*(0,20)",128,0,123,0
76 .stabn 162,0,0,0
77 .stabs "ROMENTRY:t(8,1)=(8,2)=xs_ROMENTRY:",128,0,58,0
78 .stabs "_ROMENTRY:T(8,2)=s8rome_next:(8,3)=*(8,1),0,16;rome_name:(8,4)=*(14,1),16,16;rome_size:(14
79 .stabs "ROMFILE:t(8,6)=(8,7)=xs_ROMFILE:",128,0,83,0
80 .stabs "_ROMFILE:T(8,7)=s4romf_entry:(8,3),0,16;romf_pos:(14,2),16,16;;",128,0,0,0
81 .stabn 162,0,0,0
82 .stabs "u08:t(1,1)=(0,11)",128,0,28,0
83 .stabs "s08:t(1,2)=(0,2)",128,0,29,0
84 .stabs "u16:t(1,3)=(0,9)",128,0,30,0
85 .stabs "s16:t(1,4)=(0,8)",128,0,31,0
86 .global trans_cpl
87 .global trans_cpl
88 .section .bss
89 .type trans_cpl,@object
90 .size trans_cpl,1
91 trans_cpl:
92 0000 00 .skip 1,0
93 .global seriel_re_buf
94 .global seriel_re_buf
95 .type seriel_re_buf,@object
96 .size seriel_re_buf,42
97 seriel_re_buf:
98 0001 0000 0000 .skip 42,0
98 0000 0000
98 0000 0000
98 0000 0000
98 0000 0000
99 .global seriel_tx_buf
100 .data
101 .type seriel_tx_buf,@object
102 .size seriel_tx_buf,42
103 seriel_tx_buf:
104 0000 4571 7569 .string "Equipment Is Ready,Enter Command"
104 706D 656E
104 7420 4973
104 2052 6561
104 6479 2C45
105 0021 0000 0000 .skip 9,0
105 0000 0000
GAS LISTING C:\DOCUME~1\zhang\LOCALS~1\Temp/ccyqaaaa.s page 3
105 00
106 .global size
107 .type size,@object
108 .size size,1
109 size:
110 002a 28 .byte 40
111 .text
112 .stabs "uart_init:F(0,20)",36,0,73,uart_init
113 .stabs "baud:P(1,3)",64,0,71,24
114 .global uart_init
115 .type uart_init,@function
116 uart_init:
1:wxjtest1.c **** /*
2:wxjtest1.c **** Title: AVR-GCC test program #1 for the STK200 eva board
3:wxjtest1.c **** Author: Volker Oth
4:wxjtest1.c **** Date: 4/1999
5:wxjtest1.c **** Purpose: Flashes the LEDs on Port B with a hard coded delay loop
6:wxjtest1.c **** needed
7:wxjtest1.c **** Software: AVR-GCC
8:wxjtest1.c **** needed
9:wxjtest1.c **** Hardware: ATS90S8515/8535/2313/mega on STK200/STK300 board
10:wxjtest1.c **** Note: To contact me, mail to
11:wxjtest1.c **** volkeroth@gmx.de
12:wxjtest1.c **** You might find more AVR related stuff at my homepage:
13:wxjtest1.c **** http://members.xoom.com/volkeroth
14:wxjtest1.c **** */
15:wxjtest1.c **** #include <io.h>
16:wxjtest1.c **** #include <interrupt.h>
17:wxjtest1.c **** #include <signal.h>
18:wxjtest1.c **** #include <sig-avr.h>Z
19:wxjtest1.c **** #include <fs/uromfs.h>
20:wxjtest1.c ****
21:wxjtest1.c **** #define F_CPU 14745600 /* 4Mhz */
22:wxjtest1.c **** #define UART_BAUD_RATE 9600 /* 9600 baud */
23:wxjtest1.c ****
24:wxjtest1.c ****
25:wxjtest1.c **** #define UART_BAUD_SELECT (F_CPU/(UART_BAUD_RATE*16l)-1)
26:wxjtest1.c ****
27:wxjtest1.c ****
28:wxjtest1.c **** typedef unsigned char u08;
29:wxjtest1.c **** typedef char s08;
30:wxjtest1.c **** typedef unsigned short u16;
31:wxjtest1.c **** typedef short s16;
32:wxjtest1.c ****
33:wxjtest1.c ****
34:wxjtest1.c **** /* uart globals */
35:wxjtest1.c **** static volatile u08 *uart_data_ptr;
36:wxjtest1.c **** static volatile u08 uart_counter;
37:wxjtest1.c ****
38:wxjtest1.c **** unsigned char led,seriel_data,seriel_re_time,trans_data,
39:wxjtest1.c **** seriel_tx_time,trans_cpl=0;
40:wxjtest1.c **** u16 rate;
41:wxjtest1.c **** void uart_init(u16 band);
42:wxjtest1.c **** u08 seriel_re_buf[42]={0};
43:wxjtest1.c **** u08 seriel_tx_buf[42]={"Equipment Is Ready,Enter Command"};
44:wxjtest1.c **** u08 seriel_trans_ok,xi,size=40;
45:wxjtest1.c **** /*prog_char message_to_kandshake[8][40]=
GAS LISTING C:\DOCUME~1\zhang\LOCALS~1\Temp/ccyqaaaa.s page 4
46:wxjtest1.c **** {
47:wxjtest1.c **** {"The eqiupment is ready."},
48:wxjtest1.c **** {"please enter the optional commands."},
49:wxjtest1.c **** {"please enter a new parameter!"},
50:wxjtest1.c **** {"gain_set:XX freq_set:XX outp_set:XX"},
51:wxjtest1.c **** {"work_status_check:"},
52:wxjtest1.c **** {"speed of comminication set:"},
53:wxjtest1.c **** {"maximum level of output:"},
54:wxjtest1.c **** {"command errer!"},
55:wxjtest1.c **** {"please enter a correct command."}
56:wxjtest1.c **** };*/
57:wxjtest1.c ****
58:wxjtest1.c **** //SIGNAL(SIG_OVERFLOW0) /* signal handler for tcnt0 overflow interrupt */
59:wxjtest1.c **** //{
60:wxjtest1.c **** // outp(~led, PORTB); /* invert the output since a zero means: LED on */
61:wxjtest1.c **** // led <<= 1; /* move to next LED */
62:wxjtest1.c **** // if (!led) /* overflow: start with Port B0 again */
63:wxjtest1.c **** // led = 1;
64:wxjtest1.c **** // outp(0x40, TCNT0); /* reset counter to get this interrupt again
65:wxjtest1.c **** //定时器初值*/
66:wxjtest1.c **** //}
67:wxjtest1.c ****
68:wxjtest1.c ****
69:wxjtest1.c ****
70:wxjtest1.c ****
71:wxjtest1.c **** void uart_init(u16 baud)
72:wxjtest1.c **** /* initialize uart */
73:wxjtest1.c **** {
117 .stabn 68,0,73,.LM1-uart_init
118 .LM1:
119 /* prologue: frame size=0 */
120 /* prologue end (size=0) */
74:wxjtest1.c **** /* enable RxD/TxD and ints */
75:wxjtest1.c **** outp((1<<RXCIE)|(1<<TXCIE)|(1<<RXEN)|(1<<TXEN),UCSR0B);
121 .stabn 68,0,75,.LM2-uart_init
122 .LM2:
123 0000 88ED ldi r24,lo8(-40)
124 0002 8AB9 out 42-0x20,r24
76:wxjtest1.c **** outp((1<<RXCIE)|(1<<TXCIE)|(1<<RXEN)|(1<<TXEN),UCSR1B);
125 .stabn 68,0,76,.LM3-uart_init
126 .LM3:
127 0004 8093 9A00 sts 154,r24
77:wxjtest1.c **** /*outp(1<<RXC,UCSR1A);*/
78:wxjtest1.c **** /* set baud rate */
79:wxjtest1.c **** outp((u08)UART_BAUD_SELECT, UBRR0L);
128 .stabn 68,0,79,.LM4-uart_init
129 .LM4:
130 0008 8FE5 ldi r24,lo8(95)
131 000a 89B9 out 41-0x20,r24
80:wxjtest1.c **** outp((u08)UART_BAUD_SELECT, UBRR1L);
132 .stabn 68,0,80,.LM5-uart_init
133 .LM5:
134 000c 8093 9900 sts 153,r24
81:wxjtest1.c **** baud=UART_BAUD_SELECT;
82:wxjtest1.c **** UBRR0H=(u08)baud>>8;
135 .stabn 68,0,82,.LM6-uart_init
136 .LM6:
GAS LISTING C:\DOCUME~1\zhang\LOCALS~1\Temp/ccyqaaaa.s page 5
137 0010 80E0 ldi r24,lo8(0)
138 0012 90E0 ldi r25,hi8(0)
139 0014 8093 9000 sts 144,r24
83:wxjtest1.c **** UBRR1H=(u08)baud>>8;
140 .stabn 68,0,83,.LM7-uart_init
141 .LM7:
142 0018 8093 9800 sts 152,r24
84:wxjtest1.c **** //outp((u08)baud,UBRR0L);
85:wxjtest1.c **** }
143 .stabn 68,0,85,.LM8-uart_init
144 .LM8:
145 /* epilogue: frame size=0 */
146 001c 0895 ret
147 /* epilogue end (size=1) */
148 /* function uart_init size 15 (14) */
149 .Lfe1:
150 .size uart_init,.Lfe1-uart_init
151 .Lscope0:
152 .stabs "",36,0,0,.Lscope0-uart_init
153 .stabs "__vector_20:F(0,20)",36,0,89,__vector_20
154 .global __vector_20
155 .type __vector_20,@function
156 __vector_20:
86:wxjtest1.c ****
87:wxjtest1.c **** SIGNAL(SIG_UART0_TRANS)
88:wxjtest1.c **** /* signal handler for uart txd ready interrupt */
89:wxjtest1.c **** {
157 .stabn 68,0,89,.LM9-__vector_20
158 .LM9:
159 /* prologue: frame size=0 */
160 001e 1F92 push __zero_reg__
161 0020 0F92 push __tmp_reg__
162 0022 0FB6 in __tmp_reg__,__SREG__
163 0024 0F92 push __tmp_reg__
164 0026 1124 clr __zero_reg__
165 0028 8F93 push r24
166 002a 9F93 push r25
167 002c EF93 push r30
168 002e FF93 push r31
169 /* prologue end (size=9) */
90:wxjtest1.c **** seriel_tx_time++;
170 .stabn 68,0,90,.LM10-__vector_20
171 .LM10:
172 0030 9091 0000 lds r25,seriel_tx_time
173 0034 9F5F subi r25,lo8(-(1))
174 0036 9093 0000 sts seriel_tx_time,r25
91:wxjtest1.c **** //led=~led;
92:wxjtest1.c **** /*outp(led,PORTB);*/
93:wxjtest1.c **** if (uart_counter>0)
175 .stabn 68,0,93,.LM11-__vector_20
176 .LM11:
177 003a 8091 0000 lds r24,uart_counter
178 003e 8823 tst r24
179 0040 71F0 breq .L3
94:wxjtest1.c **** {
95:wxjtest1.c **** uart_counter--;
180 .stabn 68,0,95,.LM12-__vector_20
GAS LISTING C:\DOCUME~1\zhang\LOCALS~1\Temp/ccyqaaaa.s page 6
181 .LM12:
182 0042 8091 0000 lds r24,uart_counter
183 0046 8150 subi r24,lo8(-(-1))
184 0048 8093 0000 sts uart_counter,r24
96:wxjtest1.c **** trans_data=(u08)seriel_tx_buf[seriel_tx_time];
185 .stabn 68,0,96,.LM13-__vector_20
186 .LM13:
187 004c E0E0 ldi r30,lo8(seriel_tx_buf)
188 004e F0E0 ldi r31,hi8(seriel_tx_buf)
189 0050 E90F add r30,r25
190 0052 F11D adc r31,__zero_reg__
191 0054 8081 ld r24,Z
192 0056 8093 0000 sts trans_data,r24
97:wxjtest1.c **** outp(trans_data, UDR0); /* write byte to data buffer */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -