📄 level4.lst
字号:
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccQvbaaa.s page 1
1 .file "level4.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
10 .stabs "E:\\PROJECT_GCC\\ISO14443-B_OK/",100,0,0,.Ltext0
11 .stabs "level4.c",100,0,0,.Ltext0
12 .text
13 .Ltext0:
14 .stabs "gcc2_compiled.",60,0,0,0
15 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
16 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
17 .stabs "long int:t(0,3)=@s32;r(0,3);0020000000000;0017777777777;",128,0,0,0
18 .stabs "unsigned int:t(0,4)=r(0,4);0000000000000;0000000177777;",128,0,0,0
19 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0000000000000;0037777777777;",128,0,0,0
20 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
21 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0000000000000;01777777777777777777777;",128,0,0,
22 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
23 .stabs "short unsigned int:t(0,9)=r(0,9);0000000000000;0000000177777;",128,0,0,0
24 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
25 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
26 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
27 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0
28 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
29 .stabs "complex int:t(0,15)=s4real:(0,1),0,16;imag:(0,1),16,16;;",128,0,0,0
30 .stabs "complex float:t(0,16)=R3;8;0;",128,0,0,0
31 .stabs "complex double:t(0,17)=R3;8;0;",128,0,0,0
32 .stabs "complex long double:t(0,18)=R3;8;0;",128,0,0,0
33 .stabs "__builtin_va_list:t(0,19)=*(0,20)=(0,20)",128,0,0,0
34 .stabs "_Bool:t(0,21)=@s8;-16;",128,0,0,0
35 .stabs "level4.c",130,0,0,0
36 .stabs "C:/WinAVR/avr/include/avr/io.h",130,0,0,0
37 .stabs "C:/WinAVR/avr/include/avr/sfr_defs.h",130,0,0,0
38 .stabs "C:/WinAVR/avr/include/inttypes.h",130,0,0,0
39 .stabs "int8_t:t(4,1)=(0,10)",128,0,67,0
40 .stabs "uint8_t:t(4,2)=(0,11)",128,0,72,0
41 .stabs "int16_t:t(4,3)=(0,1)",128,0,90,0
42 .stabs "uint16_t:t(4,4)=(0,4)",128,0,95,0
43 .stabs "int32_t:t(4,5)=(0,3)",128,0,106,0
44 .stabs "uint32_t:t(4,6)=(0,5)",128,0,111,0
45 .stabs "int64_t:t(4,7)=(0,6)",128,0,124,0
46 .stabs "uint64_t:t(4,8)=(0,7)",128,0,129,0
47 .stabs "intptr_t:t(4,9)=(4,3)",128,0,141,0
48 .stabs "uintptr_t:t(4,10)=(4,4)",128,0,146,0
49 .stabn 162,0,0,0
50 .stabn 162,0,0,0
51 .stabs "C:/WinAVR/avr/include/avr/iom8.h",130,0,0,0
52 .stabn 162,0,0,0
53 .stabs "C:/WinAVR/avr/include/avr/portpins.h",130,0,0,0
54 .stabn 162,0,0,0
55 .stabn 162,0,0,0
56 .stabs "C:/WinAVR/avr/include/avr/interrupt.h",130,0,0,0
57 .stabn 162,0,0,0
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccQvbaaa.s page 2
58 .stabs "C:/WinAVR/avr/include/avr/signal.h",130,0,0,0
59 .stabn 162,0,0,0
60 .stabs "C:/WinAVR/avr/include/avr/wdt.h",130,0,0,0
61 .stabn 162,0,0,0
62 .stabs "level4.h",130,0,0,0
63 .stabn 162,0,0,0
64 .stabs "level3.h",130,0,0,0
65 .stabn 162,0,0,0
66 .stabs "level2.h",130,0,0,0
67 .stabn 162,0,0,0
68 .stabs "level1.h",130,0,0,0
69 .stabn 162,0,0,0
70 .stabs "__vector_11:F(0,20)",36,0,41,__vector_11
71 .global __vector_11
72 .type __vector_11, @function
73 __vector_11:
1:level4.c ****
2:level4.c ****
3:level4.c **** #include <avr/io.h>
4:level4.c **** #include <inttypes.h>
5:level4.c **** #include <avr/interrupt.h>
6:level4.c **** #include <avr/signal.h>
7:level4.c **** #include <avr/wdt.h>
8:level4.c **** #include "level4.h"
9:level4.c **** #include "level3.h"
10:level4.c **** #include "level2.h"
11:level4.c **** #include "level1.h"
12:level4.c ****
13:level4.c ****
14:level4.c ****
15:level4.c **** //--------------------------------------------------------------
16:level4.c **** //global declarations
17:level4.c ****
18:level4.c **** //uint8_t uart_out_buffer[ 4 ] = { 0x55 , 0xAA , 0x01 , 0x02 };
19:level4.c **** //uint8_t uart_in_buffer[ UART_IN_BUFFER_SIZE ]; //receive buffer,receive data from UART of PC;
20:level4.c ****
21:level4.c **** uint8_t tx_number; //received data byte number of raw data from PC;
22:level4.c **** uint8_t rx_number;
23:level4.c ****
24:level4.c **** uint8_t uart_in_command;
25:level4.c **** uint8_t uart_in_param;
26:level4.c **** uint8_t valid_data_flag ;
27:level4.c ****
28:level4.c **** // ==================================================================
29:level4.c **** void Send_Weigan0( void );
30:level4.c **** void Send_Weigan1( void );
31:level4.c **** void Send_Weigan26( uint8_t * data );
32:level4.c **** void Send_Weigan34( uint8_t * data );
33:level4.c **** void Send_Weigan36( uint8_t * data );
34:level4.c **** void Send_Weigan44( uint8_t * data );
35:level4.c **** void SendByte( uint8_t byte );
36:level4.c **** void Send_9600( uint8_t * data );
37:level4.c **** // ==================================================================
38:level4.c **** // uart byte receive interrupt
39:level4.c ****
40:level4.c **** SIGNAL ( SIG_UART_RECV )
41:level4.c **** {
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccQvbaaa.s page 3
74 .stabn 68,0,41,.LM1-__vector_11
75 .LM1:
76 /* prologue: frame size=0 */
77 0000 1F92 push __zero_reg__
78 0002 0F92 push __tmp_reg__
79 0004 0FB6 in __tmp_reg__,__SREG__
80 0006 0F92 push __tmp_reg__
81 0008 1124 clr __zero_reg__
82 000a 2F93 push r18
83 000c 3F93 push r19
84 000e 8F93 push r24
85 0010 9F93 push r25
86 /* prologue end (size=9) */
42:level4.c **** uint8_t temp;
43:level4.c **** uint8_t error;
44:level4.c **** error = UCSRA & ( ( 1 << FE ) | ( 1 << DOR ) | ( 1 << PE ) );
87 .stabn 68,0,44,.LM2-__vector_11
88 .LM2:
89 .LBB2:
90 0012 8BB1 in r24,43-0x20
91 0014 8C71 andi r24,lo8(28)
45:level4.c **** temp = UDR; //store byte into cyclic buffer
92 .stabn 68,0,45,.LM3-__vector_11
93 .LM3:
94 0016 2CB1 in r18,44-0x20
46:level4.c **** if ( error != 0 )
95 .stabn 68,0,46,.LM4-__vector_11
96 .LM4:
97 0018 8823 tst r24
98 001a F9F4 brne .L25
47:level4.c **** {
48:level4.c **** rx_number = 0 ;
49:level4.c **** return;
50:level4.c **** }
51:level4.c **** if ( valid_data_flag != 0 )
99 .stabn 68,0,51,.LM5-__vector_11
100 .LM5:
101 001c 3091 0000 lds r19,valid_data_flag
102 0020 3323 tst r19
103 0022 09F0 breq .+2
104 0024 41C0 rjmp .L1
52:level4.c **** return;
53:level4.c **** switch( rx_number )
105 .stabn 68,0,53,.LM6-__vector_11
106 .LM6:
107 0026 8091 0000 lds r24,rx_number
108 002a 9927 clr r25
109 002c 8330 cpi r24,3
110 002e 9105 cpc r25,__zero_reg__
111 0030 B9F1 breq .L15
112 0032 8430 cpi r24,4
113 0034 9105 cpc r25,__zero_reg__
114 0036 E4F4 brge .L27
115 0038 8130 cpi r24,1
116 003a 9105 cpc r25,__zero_reg__
117 003c A9F0 breq .L8
118 003e 8230 cpi r24,2
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccQvbaaa.s page 4
119 0040 9105 cpc r25,__zero_reg__
120 0042 4CF0 brlt .L29
54:level4.c **** {
55:level4.c **** case 0 :
56:level4.c **** if ( temp == 0x55 )
57:level4.c **** rx_number = 1 ;
58:level4.c **** else
59:level4.c **** rx_number = 0 ;
60:level4.c **** break;
61:level4.c ****
62:level4.c **** case 1 :
63:level4.c **** if ( temp == 0xAA )
64:level4.c **** rx_number = 2 ;
65:level4.c **** else
66:level4.c **** rx_number = 0 ;
67:level4.c **** break;
68:level4.c ****
69:level4.c **** case 2 :
70:level4.c **** if ( temp == 0x01 )
121 .stabn 68,0,70,.LM7-__vector_11
122 .LM7:
123 0044 2130 cpi r18,lo8(1)
124 0046 19F0 breq .L30
125 .L21:
71:level4.c **** rx_number = 3 ;
72:level4.c **** else
73:level4.c **** rx_number = 0 ;
74:level4.c **** break;
75:level4.c ****
76:level4.c **** case 3 :
77:level4.c **** if ( error != 0 )
78:level4.c **** rx_number = 0 ;
79:level4.c **** else
80:level4.c **** {
81:level4.c **** uart_in_command = temp;
82:level4.c **** rx_number = 4 ;
83:level4.c **** }
84:level4.c **** break;
85:level4.c ****
86:level4.c **** case 4 :
87:level4.c **** if ( error != 0 )
88:level4.c **** rx_number = 0 ;
89:level4.c **** else
90:level4.c **** {
91:level4.c **** uart_in_param = temp;
92:level4.c **** rx_number = 5 ;
93:level4.c **** }
94:level4.c **** break;
95:level4.c ****
96:level4.c **** case 5 :
97:level4.c **** if ( temp == 0x55 )
98:level4.c **** rx_number = 6 ;
99:level4.c **** else
100:level4.c **** {
101:level4.c **** rx_number = 0 ;
126 .stabn 68,0,101,.LM8-__vector_11
127 .LM8:
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccQvbaaa.s page 5
128 0048 3093 0000 sts rx_number,r19
102:level4.c **** }
103:level4.c **** break;
129 .stabn 68,0,103,.LM9-__vector_11
130 .LM9:
131 004c 2DC0 rjmp .L1
132 .stabn 68,0,71,.LM10-__vector_11
133 .LM10:
134 .L30:
135 004e 83E0 ldi r24,lo8(3)
136 .L28:
137 0050 8093 0000 sts rx_number,r24
138 0054 29C0 rjmp .L1
139 .L29:
140 0056 892B or r24,r25
141 0058 19F0 breq .L5
142 .L25:
104:level4.c ****
105:level4.c **** case 6 :
106:level4.c **** rx_number = 0 ;
107:level4.c **** if ( temp == 0xAA )
108:level4.c **** {
109:level4.c **** valid_data_flag = 0x55;
110:level4.c **** }
111:level4.c **** break;
112:level4.c **** default :
113:level4.c **** rx_number = 0 ;
143 .stabn 68,0,113,.LM11-__vector_11
144 .LM11:
145 005a 1092 0000 sts rx_number,__zero_reg__
146 005e 24C0 rjmp .L1
147 .L5:
148 .stabn 68,0,56,.LM12-__vector_11
149 .LM12:
150 0060 2535 cpi r18,lo8(85)
151 0062 91F7 brne .L21
152 .stabn 68,0,57,.LM13-__vector_11
153 .LM13:
154 0064 81E0 ldi r24,lo8(1)
155 0066 F4CF rjmp .L28
156 .L8:
157 .stabn 68,0,63,.LM14-__vector_11
158 .LM14:
159 0068 2A3A cpi r18,lo8(-86)
160 006a 71F7 brne .L21
161 .stabn 68,0,64,.LM15-__vector_11
162 .LM15:
163 006c 82E0 ldi r24,lo8(2)
164 006e F0CF rjmp .L28
165 .L27:
166 0070 8530 cpi r24,5
167 0072 9105 cpc r25,__zero_reg__
168 0074 89F0 breq .L20
169 0076 8530 cpi r24,5
170 0078 9105 cpc r25,__zero_reg__
171 007a 54F0 brlt .L18
172 007c 0697 sbiw r24,6
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccQvbaaa.s page 6
173 007e 69F7 brne .L25
174 .stabn 68,0,106,.LM16-__vector_11
175 .LM16:
176 0080 3093 0000 sts rx_number,r19
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -