📄 level2.lst
字号:
216 .stabn 68,0,97,.LM26-SendForward
217 .LM26:
218 00a6 89B7 in r24,89-0x20
219 00a8 8460 ori r24,lo8(4)
220 00aa 89BF out 89-0x20,r24
98:level2.c **** TCCR1B = 1; //internal clock T1, RUN!
221 .stabn 68,0,98,.LM27-SendForward
222 .LM27:
223 00ac 81E0 ldi r24,lo8(1)
224 00ae 8EBD out 78-0x20,r24
99:level2.c ****
100:level2.c **** // waiting for clearing TOIE1 => command sending
101:level2.c **** while ( bit_is_set( TIMSK , TOIE1 ) != 0 )
225 .stabn 68,0,101,.LM28-SendForward
226 .LM28:
227 .L14:
228 00b0 89B7 in r24,89-0x20
229 00b2 9927 clr r25
230 00b4 9C01 movw r18,r24
231 00b6 2470 andi r18,lo8(4)
232 00b8 3070 andi r19,hi8(4)
233 00ba 82FD sbrc r24,2
234 00bc F9CF rjmp .L14
102:level2.c **** { }
103:level2.c ****
104:level2.c **** // if (forward_link_type == 0x01) {
105:level2.c **** for ( i = 0 ; i < 200 ; i++ )
235 .stabn 68,0,105,.LM29-SendForward
236 .LM29:
237 00be C901 movw r24,r18
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxcaaa.s page 7
238 .L21:
106:level2.c **** {
107:level2.c **** sbi( PORTC , MOD_PIN ); //mod EOF pulse
239 .stabn 68,0,107,.LM30-SendForward
240 .LM30:
241 00c0 A99A sbi 53-0x20,1
242 .stabn 68,0,105,.LM31-SendForward
243 .LM31:
244 00c2 0196 adiw r24,1
245 00c4 883C cpi r24,200
246 00c6 9105 cpc r25,__zero_reg__
247 00c8 D8F3 brlo .L21
108:level2.c **** }
109:level2.c **** // }
110:level2.c **** cbi( PORTC , MOD_PIN ); //notmod pulse
248 .stabn 68,0,110,.LM32-SendForward
249 .LM32:
250 00ca A998 cbi 53-0x20,1
111:level2.c **** }
251 .stabn 68,0,111,.LM33-SendForward
252 .LM33:
253 .LBE2:
254 /* epilogue: frame size=0 */
255 00cc 0895 ret
256 /* epilogue end (size=1) */
257 /* function SendForward size 44 (43) */
258 .size SendForward, .-SendForward
259 .stabs "i:r(4,4)",64,0,87,24
260 .stabn 192,0,0,.LBB2-SendForward
261 .stabn 224,0,0,.LBE2-SendForward
262 .Lscope1:
263 .stabs "",36,0,0,.Lscope1-SendForward
264 .stabs "ShiftFwdData:F(0,20)",36,0,120,ShiftFwdData
265 .stabs "data:P(4,2)",64,0,119,19
266 .stabs "cnt:P(4,2)",64,0,119,22
267 .global ShiftFwdData
268 .type ShiftFwdData, @function
269 ShiftFwdData:
112:level2.c ****
113:level2.c ****
114:level2.c ****
115:level2.c ****
116:level2.c **** // ==================================================================
117:level2.c **** // shift fwd data
118:level2.c ****
119:level2.c **** void ShiftFwdData( uint8_t data , uint8_t cnt )
120:level2.c **** {
270 .stabn 68,0,120,.LM34-ShiftFwdData
271 .LM34:
272 /* prologue: frame size=0 */
273 /* prologue end (size=0) */
274 00ce 382F mov r19,r24
121:level2.c **** uint8_t i;
122:level2.c **** for ( i = 0 ; i < cnt ; i++ )
275 .stabn 68,0,122,.LM35-ShiftFwdData
276 .LM35:
277 .LBB3:
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxcaaa.s page 8
278 00d0 40E0 ldi r20,lo8(0)
279 00d2 4617 cp r20,r22
280 00d4 08F5 brsh .L34
281 .L32:
123:level2.c **** {
124:level2.c **** fwd_byte |= ( data & 1 ) << fwd_byte_bit_cnt++;
282 .stabn 68,0,124,.LM36-ShiftFwdData
283 .LM36:
284 00d6 832F mov r24,r19
285 00d8 9927 clr r25
286 00da 8170 andi r24,lo8(1)
287 00dc 9070 andi r25,hi8(1)
288 00de 072C mov r0,r7
289 00e0 02C0 rjmp 2f
290 00e2 880F 1: lsl r24
291 00e4 991F rol r25
292 00e6 0A94 2: dec r0
293 00e8 E2F7 brpl 1b
294 00ea 8929 or r24,r9
295 00ec 982E mov r9,r24
296 00ee 7394 inc r7
125:level2.c **** data >>= 1;
297 .stabn 68,0,125,.LM37-ShiftFwdData
298 .LM37:
299 00f0 3695 lsr r19
126:level2.c **** if ( fwd_byte_bit_cnt == 8 )
300 .stabn 68,0,126,.LM38-ShiftFwdData
301 .LM38:
302 00f2 98E0 ldi r25,lo8(8)
303 00f4 7916 cp r7,r25
304 00f6 21F0 breq .L35
305 .stabn 68,0,122,.LM39-ShiftFwdData
306 .LM39:
307 .L29:
308 00f8 4F5F subi r20,lo8(-(1))
309 00fa 4617 cp r20,r22
310 00fc 60F3 brlo .L32
311 00fe 0CC0 rjmp .L34
127:level2.c **** {
128:level2.c **** *forward_ptr++ = fwd_byte;
312 .stabn 68,0,128,.LM40-ShiftFwdData
313 .LM40:
314 .L35:
315 0100 E091 0000 lds r30,forward_ptr
316 0104 F091 0000 lds r31,(forward_ptr)+1
317 0108 8193 st Z+,r24
318 010a F093 0000 sts (forward_ptr)+1,r31
319 010e E093 0000 sts forward_ptr,r30
129:level2.c **** fwd_byte_bit_cnt = 0;
320 .stabn 68,0,129,.LM41-ShiftFwdData
321 .LM41:
322 0112 7724 clr r7
130:level2.c **** fwd_byte = 0;
323 .stabn 68,0,130,.LM42-ShiftFwdData
324 .LM42:
325 0114 972C mov r9,r7
326 0116 F0CF rjmp .L29
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxcaaa.s page 9
327 .L34:
131:level2.c **** }
132:level2.c **** }
133:level2.c **** *forward_ptr = fwd_byte; //store in all cases
328 .stabn 68,0,133,.LM43-ShiftFwdData
329 .LM43:
330 0118 E091 0000 lds r30,forward_ptr
331 011c F091 0000 lds r31,(forward_ptr)+1
332 0120 9082 st Z,r9
134:level2.c **** }
333 .stabn 68,0,134,.LM44-ShiftFwdData
334 .LM44:
335 .LBE3:
336 /* epilogue: frame size=0 */
337 0122 0895 ret
338 /* epilogue end (size=1) */
339 /* function ShiftFwdData size 43 (42) */
340 .size ShiftFwdData, .-ShiftFwdData
341 .stabs "i:r(4,2)",64,0,121,20
342 .stabn 192,0,0,.LBB3-ShiftFwdData
343 .stabn 224,0,0,.LBE3-ShiftFwdData
344 .Lscope2:
345 .stabs "",36,0,0,.Lscope2-ShiftFwdData
346 .stabs "Prepare_SOF:F(4,2)",36,0,141,Prepare_SOF
347 .global Prepare_SOF
348 .type Prepare_SOF, @function
349 Prepare_SOF:
135:level2.c ****
136:level2.c ****
137:level2.c **** // ==================================================================
138:level2.c **** // prepares SOF
139:level2.c ****
140:level2.c **** uint8_t Prepare_SOF( void )
141:level2.c **** {
350 .stabn 68,0,141,.LM45-Prepare_SOF
351 .LM45:
352 /* prologue: frame size=0 */
353 /* prologue end (size=0) */
142:level2.c **** forward_ptr = data_buffer;
354 .stabn 68,0,142,.LM46-Prepare_SOF
355 .LM46:
356 0124 80E0 ldi r24,lo8(data_buffer)
357 0126 90E0 ldi r25,hi8(data_buffer)
358 0128 9093 0000 sts (forward_ptr)+1,r25
359 012c 8093 0000 sts forward_ptr,r24
143:level2.c **** fwd_byte = 0;
360 .stabn 68,0,143,.LM47-Prepare_SOF
361 .LM47:
362 0130 9924 clr r9
144:level2.c **** fwd_byte_bit_cnt = 0;
363 .stabn 68,0,144,.LM48-Prepare_SOF
364 .LM48:
365 0132 792C mov r7,r9
145:level2.c ****
146:level2.c **** return 0; //return number of emited bits
147:level2.c **** }
366 .stabn 68,0,147,.LM49-Prepare_SOF
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxcaaa.s page 10
367 .LM49:
368 0134 80E0 ldi r24,lo8(0)
369 0136 90E0 ldi r25,hi8(0)
370 /* epilogue: frame size=0 */
371 0138 0895 ret
372 /* epilogue end (size=1) */
373 /* function Prepare_SOF size 11 (10) */
374 .size Prepare_SOF, .-Prepare_SOF
375 .Lscope3:
376 .stabs "",36,0,0,.Lscope3-Prepare_SOF
377 .stabs "Prepare_Data:F(4,2)",36,0,153,Prepare_Data
378 .stabs "data:P(4,2)",64,0,152,17
379 .stabs "msg_size:P(4,2)",64,0,152,22
380 .global Prepare_Data
381 .type Prepare_Data, @function
382 Prepare_Data:
148:level2.c ****
149:level2.c **** // ==================================================================
150:level2.c **** // prepares data bits for sending
151:level2.c ****
152:level2.c **** uint8_t Prepare_Data( uint8_t data , uint8_t msg_size )
153:level2.c **** {
383 .stabn 68,0,153,.LM50-Prepare_Data
384 .LM50:
385 /* prologue: frame size=0 */
386 013a 1F93 push r17
387 /* prologue end (size=1) */
388 013c 182F mov r17,r24
154:level2.c **** //Type B
155:level2.c **** ShiftFwdData( 0 , 1 );
389 .stabn 68,0,155,.LM51-Prepare_Data
390 .LM51:
391 013e 61E0 ldi r22,lo8(1)
392 0140 80E0 ldi r24,lo8(0)
393 0142 C5DF rcall ShiftFwdData
156:level2.c ****
157:level2.c **** ShiftFwdData( data , 8 );
394 .stabn 68,0,157,.LM52-Prepare_Data
395 .LM52:
396 0144 68E0 ldi r22,lo8(8)
397 0146 812F mov r24,r17
398 0148 C2DF rcall ShiftFwdData
158:level2.c ****
159:level2.c **** ShiftFwdData( 3 , 2 );
399 .stabn 68,0,159,.LM53-Prepare_Data
400 .LM53:
401 014a 62E0 ldi r22,lo8(2)
402 014c 83E0 ldi r24,lo8(3)
403 014e BFDF rcall ShiftFwdData
160:level2.c **** return 11; //return number of emited bits
161:level2.c ****
162:level2.c **** }
404 .stabn 68,0,162,.LM54-Prepare_Data
405 .LM54:
406 0150 8BE0 ldi r24,lo8(11)
407 0152 90E0 ldi r25,hi8(11)
408 /* epilogue: frame size=0 */
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxcaaa.s page 11
409 0154 1F91 pop r17
410 0156 0895 ret
411 /* epilogue end (size=2) */
412 /* function Prepare_Data size 15 (12) */
413 .size Prepare_Data, .-Prepare_Data
414 .Lscope4:
415 .stabs "",36,0,0,.Lscope4-Prepare_Data
416 .stabs "Prepare_EOF:F(4,2)",36,0,168,Prepare_EOF
417 .stabs "msg_size:P(4,2)",64,0,167,24
418 .global Prepare_EOF
419 .type Prepare_EOF, @function
420 Prepare_EOF:
163:level2.c ****
164:level2.c **** // ==================================================================
165:level2.c **** // prepares EOF
166:level2.c ****
167:level2.c **** uint8_t Prepare_EOF( uint8_t msg_size )
168:level2.c **** {
421 .stabn 68,0,168,.LM55-Prepare_EOF
422 .LM55:
423 /* prologue: frame size=0 */
424 /* prologue end (size=0) */
169:level2.c **** return 0;
170:level2.c **** }
425 .stabn 68,0,170,.LM56-Prepare_EOF
426 .LM56:
427 0158 80E0 ldi r24,lo8(0)
428 015a 90E0 ldi r25,hi8(0)
429 /* epilogue: frame size=0 */
430 015c 0895 ret
431 /* epilogue end (size=1) */
432 /* function Prepare_EOF size 3 (2) */
433 .size Prepare_EOF, .-Prepare_EOF
434 .Lscope5:
435 .stabs "",36,0,0,.Lscope5-Prepare_EOF
436 .stabs "ClearCaptureBuffers:F(0,20)",36,0,175,ClearCaptureBuffers
437 .global ClearCaptureBuffers
438 .type ClearCaptureBuffers, @function
439 ClearCaptureBuffers:
171:level2.c ****
172:level2.c **** // ==================================================================
173:level2.c ****
174:level2.c **** void ClearCaptureBuffers( void )
175:level2.c **** {
440 .stabn 68,0,175,.LM57-ClearCaptureBuffers
441 .LM57:
442 /* prologue: frame size=0 */
443 /* prologue end (size=0) */
176:level2.c **** uint8_t i;
177:level2.c **** for( i = 0 ; i < 200 ; i++ )
444 .stabn 68,0,177,.LM58-ClearCaptureBuffers
445 .LM58:
446 .LBB4:
447 015e 80E0 ldi r24,lo8(0)
448 0160 E0E0 ldi r30,lo8(raw_data)
449 0162 F0E0 ldi r31,hi8(raw_data)
450 .L44:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -