📄 level2.lst
字号:
380 .LM53:
381 0144 832F mov r24,r19
382 0146 9927 clr r25
383 0148 8170 andi r24,lo8(1)
384 014a 9070 andi r25,hi8(1)
385 014c 072C mov r0,r7
386 014e 02C0 rjmp 2f
387 0150 880F 1: lsl r24
388 0152 991F rol r25
389 0154 0A94 2: dec r0
390 0156 E2F7 brpl 1b
391 0158 8929 or r24,r9
392 015a 982E mov r9,r24
393 015c 7394 inc r7
172:level2.c **** data >>= 1;
394 .stabn 68,0,172,.LM54-ShiftFwdData
395 .LM54:
396 015e 3695 lsr r19
173:level2.c **** if ( fwd_byte_bit_cnt == 8 )
397 .stabn 68,0,173,.LM55-ShiftFwdData
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s page 11
398 .LM55:
399 0160 98E0 ldi r25,lo8(8)
400 0162 7916 cp r7,r25
401 0164 21F0 breq .L41
402 .stabn 68,0,169,.LM56-ShiftFwdData
403 .LM56:
404 .L35:
405 0166 4F5F subi r20,lo8(-(1))
406 0168 4617 cp r20,r22
407 016a 60F3 brlo .L38
408 016c 0CC0 rjmp .L40
174:level2.c **** {
175:level2.c **** *forward_ptr++ = fwd_byte;
409 .stabn 68,0,175,.LM57-ShiftFwdData
410 .LM57:
411 .L41:
412 016e E091 0000 lds r30,forward_ptr
413 0172 F091 0000 lds r31,(forward_ptr)+1
414 0176 8193 st Z+,r24
415 0178 F093 0000 sts (forward_ptr)+1,r31
416 017c E093 0000 sts forward_ptr,r30
176:level2.c **** fwd_byte_bit_cnt = 0;
417 .stabn 68,0,176,.LM58-ShiftFwdData
418 .LM58:
419 0180 7724 clr r7
177:level2.c **** fwd_byte = 0;
420 .stabn 68,0,177,.LM59-ShiftFwdData
421 .LM59:
422 0182 972C mov r9,r7
423 0184 F0CF rjmp .L35
424 .L40:
178:level2.c **** }
179:level2.c **** }
180:level2.c **** *forward_ptr = fwd_byte; //store in all cases
425 .stabn 68,0,180,.LM60-ShiftFwdData
426 .LM60:
427 0186 E091 0000 lds r30,forward_ptr
428 018a F091 0000 lds r31,(forward_ptr)+1
429 018e 9082 st Z,r9
181:level2.c **** }
430 .stabn 68,0,181,.LM61-ShiftFwdData
431 .LM61:
432 .LBE3:
433 /* epilogue: frame size=0 */
434 0190 0895 ret
435 /* epilogue end (size=1) */
436 /* function ShiftFwdData size 43 (42) */
437 .size ShiftFwdData, .-ShiftFwdData
438 .stabs "i:r(4,2)",64,0,167,20
439 .stabn 192,0,0,.LBB3-ShiftFwdData
440 .stabn 224,0,0,.LBE3-ShiftFwdData
441 .Lscope2:
442 .stabs "",36,0,0,.Lscope2-ShiftFwdData
443 .stabs "Prepare_SOF:F(4,2)",36,0,191,Prepare_SOF
444 .global Prepare_SOF
445 .type Prepare_SOF, @function
446 Prepare_SOF:
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s page 12
182:level2.c ****
183:level2.c ****
184:level2.c **** // ********************************************************************************************
185:level2.c **** // Description : Prepare SOF of the Type A data before a frame.
186:level2.c **** // Return value:
187:level2.c **** // parameter :
188:level2.c **** // ********************************************************************************************
189:level2.c ****
190:level2.c **** uint8_t Prepare_SOF( void )
191:level2.c **** {
447 .stabn 68,0,191,.LM62-Prepare_SOF
448 .LM62:
449 /* prologue: frame size=0 */
450 /* prologue end (size=0) */
192:level2.c **** forward_ptr = data_buffer;
451 .stabn 68,0,192,.LM63-Prepare_SOF
452 .LM63:
453 0192 80E0 ldi r24,lo8(data_buffer)
454 0194 90E0 ldi r25,hi8(data_buffer)
455 0196 9093 0000 sts (forward_ptr)+1,r25
456 019a 8093 0000 sts forward_ptr,r24
193:level2.c **** fwd_byte = 0;
457 .stabn 68,0,193,.LM64-Prepare_SOF
458 .LM64:
459 019e 9924 clr r9
194:level2.c **** fwd_byte_bit_cnt = 0;
460 .stabn 68,0,194,.LM65-Prepare_SOF
461 .LM65:
462 01a0 792C mov r7,r9
195:level2.c **** return 0; //return number of emited bits
196:level2.c **** }
463 .stabn 68,0,196,.LM66-Prepare_SOF
464 .LM66:
465 01a2 80E0 ldi r24,lo8(0)
466 01a4 90E0 ldi r25,hi8(0)
467 /* epilogue: frame size=0 */
468 01a6 0895 ret
469 /* epilogue end (size=1) */
470 /* function Prepare_SOF size 11 (10) */
471 .size Prepare_SOF, .-Prepare_SOF
472 .Lscope3:
473 .stabs "",36,0,0,.Lscope3-Prepare_SOF
474 .stabs "Prepare_Data:F(4,2)",36,0,205,Prepare_Data
475 .stabs "data:P(4,2)",64,0,204,28
476 .stabs "msg_size:P(4,2)",64,0,204,17
477 .global Prepare_Data
478 .type Prepare_Data, @function
479 Prepare_Data:
197:level2.c ****
198:level2.c **** // ********************************************************************************************
199:level2.c **** // Description : Prepare the data bit to be send to EM4094 DIN.
200:level2.c **** // Return value:
201:level2.c **** // parameter :
202:level2.c **** // ********************************************************************************************
203:level2.c ****
204:level2.c **** uint8_t Prepare_Data( uint8_t data , uint8_t msg_size ) //Type A
205:level2.c **** {
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s page 13
480 .stabn 68,0,205,.LM67-Prepare_Data
481 .LM67:
482 /* prologue: frame size=0 */
483 01a8 0F93 push r16
484 01aa 1F93 push r17
485 01ac CF93 push r28
486 /* prologue end (size=3) */
487 01ae C82F mov r28,r24
488 01b0 162F mov r17,r22
206:level2.c **** uint8_t i , j = 8;
489 .stabn 68,0,206,.LM68-Prepare_Data
490 .LM68:
491 .LBB4:
492 01b2 08E0 ldi r16,lo8(8)
207:level2.c ****
208:level2.c **** ShiftFwdData( data , j );
493 .stabn 68,0,208,.LM69-Prepare_Data
494 .LM69:
495 01b4 602F mov r22,r16
496 01b6 C2DF rcall ShiftFwdData
209:level2.c ****
210:level2.c **** if ( msg_size > 1 )
497 .stabn 68,0,210,.LM70-Prepare_Data
498 .LM70:
499 01b8 1230 cpi r17,lo8(2)
500 01ba 40F0 brlo .L44
211:level2.c **** {
212:level2.c **** i = 1;
501 .stabn 68,0,212,.LM71-Prepare_Data
502 .LM71:
503 01bc 81E0 ldi r24,lo8(1)
504 .L49:
213:level2.c **** for ( ; j > 0 ; j-- )
214:level2.c **** {
215:level2.c **** i ^= data;
505 .stabn 68,0,215,.LM72-Prepare_Data
506 .LM72:
507 01be 8C27 eor r24,r28
216:level2.c **** data >>= 1;
508 .stabn 68,0,216,.LM73-Prepare_Data
509 .LM73:
510 01c0 C695 lsr r28
511 .stabn 68,0,213,.LM74-Prepare_Data
512 .LM74:
513 01c2 0150 subi r16,lo8(-(-1))
514 01c4 E1F7 brne .L49
217:level2.c **** }
218:level2.c **** ShiftFwdData( i , 1 );
515 .stabn 68,0,218,.LM75-Prepare_Data
516 .LM75:
517 01c6 61E0 ldi r22,lo8(1)
518 01c8 B9DF rcall ShiftFwdData
219:level2.c **** j = 9;
519 .stabn 68,0,219,.LM76-Prepare_Data
520 .LM76:
521 01ca 09E0 ldi r16,lo8(9)
522 .L44:
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s page 14
220:level2.c **** }
221:level2.c **** return j;
523 .stabn 68,0,221,.LM77-Prepare_Data
524 .LM77:
525 01cc 802F mov r24,r16
526 01ce 9927 clr r25
222:level2.c **** }
527 .stabn 68,0,222,.LM78-Prepare_Data
528 .LM78:
529 .LBE4:
530 /* epilogue: frame size=0 */
531 01d0 CF91 pop r28
532 01d2 1F91 pop r17
533 01d4 0F91 pop r16
534 01d6 0895 ret
535 /* epilogue end (size=4) */
536 /* function Prepare_Data size 25 (18) */
537 .size Prepare_Data, .-Prepare_Data
538 .stabs "i:r(4,2)",64,0,206,24
539 .stabs "j:r(4,2)",64,0,206,16
540 .stabn 192,0,0,.LBB4-Prepare_Data
541 .stabn 224,0,0,.LBE4-Prepare_Data
542 .Lscope4:
543 .stabs "",36,0,0,.Lscope4-Prepare_Data
544 .stabs "Prepare_EOF:F(4,2)",36,0,231,Prepare_EOF
545 .stabs "msg_size:P(4,2)",64,0,230,25
546 .global Prepare_EOF
547 .type Prepare_EOF, @function
548 Prepare_EOF:
223:level2.c ****
224:level2.c **** // ********************************************************************************************
225:level2.c **** // Description : Prepare EOF of type A .
226:level2.c **** // Return value:
227:level2.c **** // parameter :
228:level2.c **** // ********************************************************************************************
229:level2.c ****
230:level2.c **** uint8_t Prepare_EOF( uint8_t msg_size )
231:level2.c **** {
549 .stabn 68,0,231,.LM79-Prepare_EOF
550 .LM79:
551 /* prologue: frame size=0 */
552 /* prologue end (size=0) */
553 01d8 982F mov r25,r24
232:level2.c **** if ( forward_link_type == 0x02 )
554 .stabn 68,0,232,.LM80-Prepare_EOF
555 .LM80:
556 01da 8091 0000 lds r24,forward_link_type
557 01de 8230 cpi r24,lo8(2)
558 01e0 29F4 brne .L53
233:level2.c **** {
234:level2.c **** if ( msg_size > 1 )
559 .stabn 68,0,234,.LM81-Prepare_EOF
560 .LM81:
561 01e2 9230 cpi r25,lo8(2)
562 01e4 18F0 brlo .L53
235:level2.c **** ShiftFwdData( 0 , 1 );
563 .stabn 68,0,235,.LM82-Prepare_EOF
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s page 15
564 .LM82:
565 01e6 61E0 ldi r22,lo8(1)
566 01e8 80E0 ldi r24,lo8(0)
567 01ea A8DF rcall ShiftFwdData
568 .L53:
236:level2.c **** }
237:level2.c **** return 0;
238:level2.c **** }
569 .stabn 68,0,238,.LM83-Prepare_EOF
570 .LM83:
571 01ec 80E0 ldi r24,lo8(0)
572 01ee 90E0 ldi r25,hi8(0)
573 /* epilogue: frame size=0 */
574 01f0 0895 ret
575 /* epilogue end (size=1) */
576 /* function Prepare_EOF size 13 (12) */
577 .size Prepare_EOF, .-Prepare_EOF
578 .Lscope5:
579 .stabs "",36,0,0,.Lscope5-Prepare_EOF
580 .stabs "ClearCaptureBuffers:F(0,20)",36,0,247,ClearCaptureBuffers
581 .global ClearCaptureBuffers
582 .type ClearCaptureBuffers, @function
583 ClearCaptureBuffers:
239:level2.c ****
240:level2.c **** // ********************************************************************************************
241:level2.c **** // Description : Clear all data in capture.decoded_data structure.
242:level2.c **** // Return value: None.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -