📄 spi_2dpj_slave.lst
字号:
1 .file "spi_2dpj_slave.c"
2 .arch atmega16
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
17 .Ltext0:
18 .global disp
20 disp:
21 .LFB7:
22 .LM1:
23 /* prologue: frame size=0 */
24 /* prologue end (size=0) */
25 0000 982F mov r25,r24
26 0002 8FEF ldi r24,lo8(-1)
27 0004 87BB out 55-0x20,r24
28 .LM2:
29 0006 8ABB out 58-0x20,r24
30 .LM3:
31 0008 DE98 cbi 59-0x20,6
32 .LM4:
33 000a 98BB out 56-0x20,r25
34 /* epilogue: frame size=0 */
35 000c 0895 ret
36 /* epilogue end (size=1) */
37 /* function disp size 7 (6) */
38 .LFE7:
40 .data
41 .LC0:
42 0000 C0 .byte -64
43 0001 F9 .byte -7
44 0002 A4 .byte -92
45 0003 B0 .byte -80
46 0004 99 .byte -103
47 0005 92 .byte -110
48 0006 82 .byte -126
49 0007 F8 .byte -8
50 0008 80 .byte -128
51 0009 90 .byte -112
52 .text
53 .global fill_tx_buffer
55 fill_tx_buffer:
56 .LFB8:
57 .LM5:
58 /* prologue: frame size=10 */
59 000e CF93 push r28
60 0010 DF93 push r29
61 0012 CDB7 in r28,__SP_L__
62 0014 DEB7 in r29,__SP_H__
63 0016 2A97 sbiw r28,10
64 0018 0FB6 in __tmp_reg__,__SREG__
65 001a F894 cli
66 001c DEBF out __SP_H__,r29
67 001e 0FBE out __SREG__,__tmp_reg__
68 0020 CDBF out __SP_L__,r28
69 /* prologue end (size=10) */
70 .LM6:
71 0022 8AE0 ldi r24,lo8(10)
72 0024 A0E0 ldi r26,lo8(.LC0)
73 0026 B0E0 ldi r27,hi8(.LC0)
74 0028 FE01 movw r30,r28
75 002a 3196 adiw r30,1
76 002c 0D90 ld __tmp_reg__,X+
77 002e 0192 st Z+,__tmp_reg__
78 0030 8A95 dec r24
79 0032 E1F7 brne .-8
80 /* epilogue: frame size=10 */
81 0034 2A96 adiw r28,10
82 0036 0FB6 in __tmp_reg__,__SREG__
83 0038 F894 cli
84 003a DEBF out __SP_H__,r29
85 003c 0FBE out __SREG__,__tmp_reg__
86 003e CDBF out __SP_L__,r28
87 0040 DF91 pop r29
88 0042 CF91 pop r28
89 0044 0895 ret
90 /* epilogue end (size=9) */
91 /* function fill_tx_buffer size 28 (9) */
92 .LFE8:
94 .global read_rx_buffer
96 read_rx_buffer:
97 .LFB9:
98 .LM7:
99 /* prologue: frame size=0 */
100 /* prologue end (size=0) */
101 .LM8:
102 0046 8091 0000 lds r24,SPI_RxBuf+1
103 004a 803C cpi r24,lo8(-64)
104 004c 29F5 brne .L3
105 .LM9:
106 004e 8091 0000 lds r24,SPI_RxBuf+2
107 0052 893F cpi r24,lo8(-7)
108 0054 09F5 brne .L3
109 0056 8091 0000 lds r24,SPI_RxBuf+3
110 005a 843A cpi r24,lo8(-92)
111 005c E9F4 brne .L3
112 005e 8091 0000 lds r24,SPI_RxBuf+4
113 0062 803B cpi r24,lo8(-80)
114 0064 C9F4 brne .L3
115 0066 8091 0000 lds r24,SPI_RxBuf+5
116 006a 8939 cpi r24,lo8(-103)
117 006c A9F4 brne .L3
118 006e 8091 0000 lds r24,SPI_RxBuf+6
119 0072 8239 cpi r24,lo8(-110)
120 0074 89F4 brne .L3
121 0076 8091 0000 lds r24,SPI_RxBuf+7
122 007a 8238 cpi r24,lo8(-126)
123 007c 69F4 brne .L3
124 007e 8091 0000 lds r24,SPI_RxBuf+8
125 0082 883F cpi r24,lo8(-8)
126 0084 49F4 brne .L3
127 0086 8091 0000 lds r24,SPI_RxBuf+9
128 008a 8038 cpi r24,lo8(-128)
129 008c 29F4 brne .L3
130 008e 8091 0000 lds r24,SPI_RxBuf+10
131 0092 8039 cpi r24,lo8(-112)
132 0094 09F4 brne .L3
133 .LM10:
134 0096 AD98 cbi 53-0x20,5
135 .L3:
136 0098 0895 ret
137 /* epilogue: frame size=0 */
138 009a 0895 ret
139 /* epilogue end (size=1) */
140 /* function read_rx_buffer size 43 (42) */
141 .LFE9:
143 .global __vector_10
145 __vector_10:
146 .LFB10:
147 .LM11:
148 /* prologue: frame size=0 */
149 009c 1F92 push __zero_reg__
150 009e 0F92 push __tmp_reg__
151 00a0 0FB6 in __tmp_reg__,__SREG__
152 00a2 0F92 push __tmp_reg__
153 00a4 1124 clr __zero_reg__
154 00a6 8F93 push r24
155 00a8 EF93 push r30
156 00aa FF93 push r31
157 /* prologue end (size=8) */
158 .LM12:
159 00ac 8091 0000 lds r24,SPI_RxHead
160 00b0 E82F mov r30,r24
161 00b2 FF27 clr r31
162 00b4 E050 subi r30,lo8(-(SPI_RxBuf))
163 00b6 F040 sbci r31,hi8(-(SPI_RxBuf))
164 00b8 8FB1 in r24,47-0x20
165 00ba 8083 st Z,r24
166 .LM13:
167 00bc 8091 0000 lds r24,SPI_RxHead
168 00c0 8A30 cpi r24,lo8(10)
169 00c2 31F4 brne .L6
170 .LM14:
171 00c4 1092 0000 sts SPI_RxHead,__zero_reg__
172 .LM15:
173 00c8 81E0 ldi r24,lo8(1)
174 00ca 8093 0000 sts spi_trans_com,r24
175 00ce 05C0 rjmp .L7
176 .L6:
177 .LM16:
178 00d0 8091 0000 lds r24,SPI_RxHead
179 00d4 8F5F subi r24,lo8(-(1))
180 00d6 8093 0000 sts SPI_RxHead,r24
181 .L7:
182 .LM17:
183 00da 8091 0000 lds r24,Tx_counter
184 00de 8823 tst r24
185 00e0 C1F0 breq .L5
186 .LM18:
187 00e2 8150 subi r24,lo8(-(-1))
188 00e4 8093 0000 sts Tx_counter,r24
189 .LM19:
190 00e8 8091 0000 lds r24,SPI_TxHead
191 00ec E82F mov r30,r24
192 00ee FF27 clr r31
193 00f0 E050 subi r30,lo8(-(SPI_TxBuf))
194 00f2 F040 sbci r31,hi8(-(SPI_TxBuf))
195 00f4 8081 ld r24,Z
196 00f6 8FB9 out 47-0x20,r24
197 .LM20:
198 00f8 8091 0000 lds r24,SPI_TxHead
199 00fc 8F5F subi r24,lo8(-(1))
200 00fe 8093 0000 sts SPI_TxHead,r24
201 0102 8091 0000 lds r24,SPI_TxHead
202 0106 8A30 cpi r24,lo8(10)
203 0108 21F4 brne .L5
204 .LM21:
205 010a 1092 0000 sts SPI_TxHead,__zero_reg__
206 .LM22:
207 010e 8093 0000 sts Tx_counter,r24
208 .L5:
209 /* epilogue: frame size=0 */
210 0112 FF91 pop r31
211 0114 EF91 pop r30
212 0116 8F91 pop r24
213 0118 0F90 pop __tmp_reg__
214 011a 0FBE out __SREG__,__tmp_reg__
215 011c 0F90 pop __tmp_reg__
216 011e 1F90 pop __zero_reg__
217 0120 1895 reti
218 /* epilogue end (size=8) */
219 /* function __vector_10 size 67 (51) */
220 .LFE10:
222 .global spi_init
224 spi_init:
225 .LFB11:
226 .LM23:
227 /* prologue: frame size=0 */
228 /* prologue end (size=0) */
229 .LM24:
230 0122 80EB ldi r24,lo8(-80)
231 0124 87BB out 55-0x20,r24
232 .LM25:
233 0126 80E4 ldi r24,lo8(64)
234 0128 88BB out 56-0x20,r24
235 .LM26:
236 012a 85EC ldi r24,lo8(-59)
237 012c 8DB9 out 45-0x20,r24
238 .LM27:
239 012e 1EB8 out 46-0x20,__zero_reg__
240 .LM28:
241 0130 8EB1 in r24,46-0x20
242 .LM29:
243 0132 8FB1 in r24,47-0x20
244 /* epilogue: frame size=0 */
245 0134 0895 ret
246 /* epilogue end (size=1) */
247 /* function spi_init size 10 (9) */
248 .LFE11:
250 .global spi_send
252 spi_send:
253 .LFB12:
254 .LM30:
255 /* prologue: frame size=0 */
256 /* prologue end (size=0) */
257 .LM31:
258 0136 0E94 0000 call fill_tx_buffer
259 .LM32:
260 013a 0E94 0000 call spi_init
261 .LM33:
262 013e 8FEF ldi r24,lo8(-1)
263 0140 8FB9 out 47-0x20,r24
264 .LM34:
265 /* #APP */
266 0142 7894 sei
267 .LM35:
268 /* #NOAPP */
269 0144 8DB1 in r24,45-0x20
270 0146 806C ori r24,lo8(-64)
271 0148 8DB9 out 45-0x20,r24
272 .LM36:
273 014a 1092 0000 sts SPI_TxHead,__zero_reg__
274 /* epilogue: frame size=0 */
275 014e 0895 ret
276 /* epilogue end (size=1) */
277 /* function spi_send size 14 (13) */
278 .LFE12:
280 .global main
282 main:
283 .LFB13:
284 .LM37:
285 /* prologue: frame size=0 */
286 0150 C0E0 ldi r28,lo8(__stack - 0)
287 0152 D0E0 ldi r29,hi8(__stack - 0)
288 0154 DEBF out __SP_H__,r29
289 0156 CDBF out __SP_L__,r28
290 /* prologue end (size=4) */
291 .LM38:
292 0158 8FEF ldi r24,lo8(-1)
293 015a 85BB out 53-0x20,r24
294 .LM39:
295 015c 84BB out 52-0x20,r24
296 .LM40:
297 015e 1092 0000 sts SPI_RxHead,__zero_reg__
298 .LM41:
299 0162 1092 0000 sts SPI_TxHead,__zero_reg__
300 .LM42:
301 0166 8AE0 ldi r24,lo8(10)
302 0168 8093 0000 sts Tx_counter,r24
303 .LM43:
304 016c 0E94 0000 call spi_send
305 .L19:
306 .LM44:
307 0170 8091 0000 lds r24,spi_trans_com
308 0174 8130 cpi r24,lo8(1)
309 0176 E1F7 brne .L19
310 .LM45:
311 0178 0E94 0000 call read_rx_buffer
312 .LM46:
313 017c 1092 0000 sts spi_trans_com,__zero_reg__
314 0180 F7CF rjmp .L19
315 /* epilogue: frame size=0 */
316 /* epilogue: noreturn */
317 /* epilogue end (size=0) */
318 /* function main size 25 (21) */
319 .LFE13:
321 .comm SPI_RxBuf,11,1
322 .comm SPI_RxHead,1,1
323 .comm SPI_TxBuf,10,1
324 .comm SPI_TxHead,1,1
325 .comm Tx_counter,1,1
326 .comm spi_trans_com,1,1
327 .Letext0:
DEFINED SYMBOLS
*ABS*:00000000 spi_2dpj_slave.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\DOCUME~1\lgd\LOCALS~1\Temp/ccuoaaaa.s:20 .text:00000000 disp
C:\DOCUME~1\lgd\LOCALS~1\Temp/ccuoaaaa.s:55 .text:0000000e fill_tx_buffer
C:\DOCUME~1\lgd\LOCALS~1\Temp/ccuoaaaa.s:96 .text:00000046 read_rx_buffer
*COM*:0000000b SPI_RxBuf
C:\DOCUME~1\lgd\LOCALS~1\Temp/ccuoaaaa.s:145 .text:0000009c __vector_10
*COM*:00000001 SPI_RxHead
*COM*:00000001 spi_trans_com
*COM*:00000001 Tx_counter
*COM*:00000001 SPI_TxHead
*COM*:0000000a SPI_TxBuf
C:\DOCUME~1\lgd\LOCALS~1\Temp/ccuoaaaa.s:224 .text:00000122 spi_init
C:\DOCUME~1\lgd\LOCALS~1\Temp/ccuoaaaa.s:252 .text:00000136 spi_send
C:\DOCUME~1\lgd\LOCALS~1\Temp/ccuoaaaa.s:282 .text:00000150 main
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -