📄 yc_play.lst
字号:
610 0290 982F mov r25,r24
611 .L103:
612 0292 9093 0000 sts WorkFlag,r25
613 0296 8093 0000 sts WorkFlag+2,r24
614 029a 43C0 rjmp .L104
615 .L102:
617 .LM76:
618 029c 2223 tst r18
619 029e 09F0 breq .+2
620 02a0 3DC0 rjmp .L105
622 .LM77:
623 02a2 9927 clr r25
624 02a4 8430 cpi r24,4
625 02a6 9105 cpc r25,__zero_reg__
626 02a8 69F0 breq .L108
627 02aa 8530 cpi r24,5
628 02ac 9105 cpc r25,__zero_reg__
629 02ae 1CF4 brge .L113
630 02b0 0297 sbiw r24,2
631 02b2 21F0 breq .L107
632 02b4 33C0 rjmp .L105
633 .L113:
634 02b6 0897 sbiw r24,8
635 02b8 41F1 breq .L110
636 02ba 30C0 rjmp .L105
637 .L107:
639 .LM78:
640 02bc 85E5 ldi r24,lo8(85)
641 02be 8093 0000 sts bCurPlayIdx,r24
642 02c2 2CC0 rjmp .L105
643 .L108:
645 .LM79:
646 02c4 8091 0000 lds r24,WorkFlag+4
647 02c8 8130 cpi r24,lo8(1)
648 02ca 41F5 brne .L105
650 .LM80:
651 02cc 8093 0000 sts WorkFlag+2,r24
652 02d0 8093 0000 sts WorkFlag+3,r24
653 02d4 2093 0000 sts WorkFlag+4,r18
655 .LM81:
656 02d8 8091 0000 lds r24,wCurRedAsh
657 02dc 9091 0000 lds r25,(wCurRedAsh)+1
658 02e0 9093 0000 sts (wCurRedAshVal)+1,r25
659 02e4 8093 0000 sts wCurRedAshVal,r24
660 02e8 8091 0000 lds r24,wCurGreAsh
661 02ec 9091 0000 lds r25,(wCurGreAsh)+1
662 02f0 9093 0000 sts (wCurGreAshVal)+1,r25
663 02f4 8093 0000 sts wCurGreAshVal,r24
664 02f8 8091 0000 lds r24,wCurBluAsh
665 02fc 9091 0000 lds r25,(wCurBluAsh)+1
666 0300 9093 0000 sts (wCurBluAshVal)+1,r25
667 0304 8093 0000 sts wCurBluAshVal,r24
669 .LM82:
670 0308 09C0 rjmp .L105
671 .L110:
673 .LM83:
674 030a 8091 0000 lds r24,bCurPlayIdx
675 030e 8F5F subi r24,lo8(-(1))
676 0310 8093 0000 sts bCurPlayIdx,r24
678 .LM84:
679 0314 8530 cpi r24,lo8(5)
680 0316 11F4 brne .L105
681 0318 2093 0000 sts bCurPlayIdx,r18
682 .L105:
684 .LM85:
685 031c 81E0 ldi r24,lo8(1)
686 031e 8093 0000 sts WorkFlag+1,r24
687 .L104:
689 .LM86:
690 0322 2FDF rcall SaveWorkState
691 /* epilogue: frame size=0 */
692 0324 0895 ret
693 /* epilogue end (size=1) */
694 /* function KeyYc size 83 (82) */
696 .Lscope3:
698 .global LoadWorkState
700 LoadWorkState:
185:YC_Play.c **** }
186:YC_Play.c **** }
187:YC_Play.c ****
188:YC_Play.c **** /*=====================================================================
189:YC_Play.c **** 【功 能】: 调入工作状态
190:YC_Play.c **** 【名 称】: LoadWorkState()
191:YC_Play.c **** 【日 期】: 2006年8月30日
192:YC_Play.c **** =====================================================================*/
193:YC_Play.c **** void LoadWorkState(void)
194:YC_Play.c **** {
702 .LM87:
703 /* prologue: frame size=0 */
704 /* prologue end (size=0) */
195:YC_Play.c **** if(WorkFlag.bKeyUpt == 1)
706 .LM88:
707 0326 8091 0000 lds r24,WorkFlag+1
708 032a 8130 cpi r24,lo8(1)
709 032c B1F5 brne .L115
710 .L116:
196:YC_Play.c **** {
197:YC_Play.c **** eeprom_busy_wait();
712 .LM89:
713 032e E199 sbic 60-0x20,1
714 0330 FECF rjmp .L116
198:YC_Play.c **** bCurPlayIdx = eeprom_read_byte(&bLastPlayIdx);
716 .LM90:
717 0332 80E0 ldi r24,lo8(bLastPlayIdx)
718 0334 90E0 ldi r25,hi8(bLastPlayIdx)
719 0336 00D0 rcall eeprom_read_byte
720 0338 8093 0000 sts bCurPlayIdx,r24
721 .L119:
199:YC_Play.c **** eeprom_busy_wait();
723 .LM91:
724 033c E199 sbic 60-0x20,1
725 033e FECF rjmp .L119
200:YC_Play.c **** wCurRedAshVal = eeprom_read_word(&bColorAsh[bCurPlayIdx][0]);
727 .LM92:
728 0340 9091 0000 lds r25,bCurPlayIdx
729 0344 86E0 ldi r24,lo8(6)
730 0346 989F mul r25,r24
731 0348 C001 movw r24,r0
732 034a 1124 clr r1
733 034c 8050 subi r24,lo8(-(bColorAsh))
734 034e 9040 sbci r25,hi8(-(bColorAsh))
735 0350 00D0 rcall eeprom_read_word
736 0352 9093 0000 sts (wCurRedAshVal)+1,r25
737 0356 8093 0000 sts wCurRedAshVal,r24
738 .L122:
201:YC_Play.c **** eeprom_busy_wait();
740 .LM93:
741 035a E199 sbic 60-0x20,1
742 035c FECF rjmp .L122
202:YC_Play.c **** wCurGreAshVal = eeprom_read_word(&bColorAsh[bCurPlayIdx][1]);
744 .LM94:
745 035e 9091 0000 lds r25,bCurPlayIdx
746 0362 86E0 ldi r24,lo8(6)
747 0364 989F mul r25,r24
748 0366 C001 movw r24,r0
749 0368 1124 clr r1
750 036a 8050 subi r24,lo8(-(bColorAsh+2))
751 036c 9040 sbci r25,hi8(-(bColorAsh+2))
752 036e 00D0 rcall eeprom_read_word
753 0370 9093 0000 sts (wCurGreAshVal)+1,r25
754 0374 8093 0000 sts wCurGreAshVal,r24
755 .L125:
203:YC_Play.c **** eeprom_busy_wait();
757 .LM95:
758 0378 E199 sbic 60-0x20,1
759 037a FECF rjmp .L125
204:YC_Play.c **** wCurBluAshVal = eeprom_read_word(&bColorAsh[bCurPlayIdx][2]);
761 .LM96:
762 037c 9091 0000 lds r25,bCurPlayIdx
763 0380 86E0 ldi r24,lo8(6)
764 0382 989F mul r25,r24
765 0384 C001 movw r24,r0
766 0386 1124 clr r1
767 0388 8050 subi r24,lo8(-(bColorAsh+4))
768 038a 9040 sbci r25,hi8(-(bColorAsh+4))
769 038c 00D0 rcall eeprom_read_word
770 038e 9093 0000 sts (wCurBluAshVal)+1,r25
771 0392 8093 0000 sts wCurBluAshVal,r24
205:YC_Play.c **** WorkFlag.bKeyUpt = 0;
773 .LM97:
774 0396 1092 0000 sts WorkFlag+1,__zero_reg__
775 .L115:
206:YC_Play.c **** }
207:YC_Play.c ****
208:YC_Play.c **** if(WorkFlag.bColseWork == 1)
777 .LM98:
778 039a 8091 0000 lds r24,WorkFlag
779 039e 8130 cpi r24,lo8(1)
780 03a0 21F4 brne .L128
209:YC_Play.c **** {
210:YC_Play.c **** OFF_Red(); OFF_Gre(); OFF_Blu();
782 .LM99:
783 03a2 959A sbi 50-0x20,5
784 03a4 969A sbi 50-0x20,6
785 03a6 979A sbi 50-0x20,7
786 03a8 0895 ret
787 .L128:
211:YC_Play.c **** }
212:YC_Play.c **** else
213:YC_Play.c **** {
214:YC_Play.c **** if(bCurPlayIdx == 0x55)
789 .LM100:
790 03aa 8091 0000 lds r24,bCurPlayIdx
791 03ae 8535 cpi r24,lo8(85)
792 03b0 19F4 brne .L130
215:YC_Play.c **** Play_Gradual(PLAY_GRADSPEED);
794 .LM101:
795 03b2 81E0 ldi r24,lo8(1)
796 03b4 44DE rcall Play_Gradual
797 03b6 0895 ret
798 .L130:
216:YC_Play.c **** else
217:YC_Play.c **** PlayStaticAsh(wCurRedAshVal, wCurGreAshVal, wCurBluAshVal);
800 .LM102:
801 03b8 4091 0000 lds r20,wCurBluAshVal
802 03bc 5091 0000 lds r21,(wCurBluAshVal)+1
803 03c0 6091 0000 lds r22,wCurGreAshVal
804 03c4 7091 0000 lds r23,(wCurGreAshVal)+1
805 03c8 8091 0000 lds r24,wCurRedAshVal
806 03cc 9091 0000 lds r25,(wCurRedAshVal)+1
807 03d0 17DE rcall PlayStaticAsh
808 03d2 0895 ret
809 /* epilogue: frame size=0 */
810 03d4 0895 ret
811 /* epilogue end (size=1) */
812 /* function LoadWorkState size 88 (87) */
814 .Lscope4:
816 .global InitWorkState
818 InitWorkState:
218:YC_Play.c **** }
219:YC_Play.c **** }
220:YC_Play.c ****
221:YC_Play.c **** /*=====================================================================
222:YC_Play.c **** 【功 能】: 初始化工作状态
223:YC_Play.c **** 【名 称】: InitWorkState()
224:YC_Play.c **** 【日 期】: 2006年8月30日
225:YC_Play.c **** =====================================================================*/
226:YC_Play.c **** void InitWorkState(void)
227:YC_Play.c **** {
820 .LM103:
821 /* prologue: frame size=0 */
822 /* prologue end (size=0) */
228:YC_Play.c **** DDRD |= (_BV(PD5) | _BV(PD6) | _BV(PD7));
824 .LM104:
825 03d6 81B3 in r24,49-0x20
826 03d8 806E ori r24,lo8(-32)
827 03da 81BB out 49-0x20,r24
229:YC_Play.c **** DDRC &= ~(_BV(PC0) | _BV(PC1) | _BV(PC2) | _BV(PC3));
829 .LM105:
830 03dc 84B3 in r24,52-0x20
831 03de 807F andi r24,lo8(-16)
832 03e0 84BB out 52-0x20,r24
230:YC_Play.c **** DDRD &= ~(_BV(PD2));
834 .LM106:
835 03e2 8A98 cbi 49-0x20,2
231:YC_Play.c **** PORTD |= _BV(PD2);
837 .LM107:
838 03e4 929A sbi 50-0x20,2
232:YC_Play.c ****
233:YC_Play.c **** WorkFlag.bKeyUpt = 1;
840 .LM108:
841 03e6 81E0 ldi r24,lo8(1)
842 03e8 8093 0000 sts WorkFlag+1,r24
234:YC_Play.c **** WorkFlag.bColseWork = 0;
844 .LM109:
845 03ec 1092 0000 sts WorkFlag,__zero_reg__
235:YC_Play.c **** LoadWorkState();
847 .LM110:
848 03f0 9ADF rcall LoadWorkState
849 /* epilogue: frame size=0 */
850 03f2 0895 ret
851 /* epilogue end (size=1) */
852 /* function InitWorkState size 15 (14) */
854 .Lscope5:
855 .global bLastPlayIdx
856 .section .eeprom,"aw",@progbits
859 bLastPlayIdx:
860 0000 00 .skip 1,0
861 .global bColorAsh
864 bColorAsh:
865 0001 0000 0000 .skip 30,0
865 0000 0000
865 0000 0000
865 0000 0000
865 0000 0000
866 .comm wCurRedAsh,2,1
867 .comm wCurGreAsh,2,1
868 .comm wCurBluAsh,2,1
869 .comm wCurRedAshVal,2,1
870 .comm wCurGreAshVal,2,1
871 .comm wCurBluAshVal,2,1
872 .comm WorkFlag,5,1
884 .text
886 Letext:
887 /* File "YC_Play.c": code 511 = 0x01ff ( 482), prologues 12, epilogues 17 */
DEFINED SYMBOLS
*ABS*:00000000 YC_Play.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\DOCUME~1\KAIFA\LOCALS~1\Temp/ccycaaaa.s:81 .data:00000000 bCurPlayIdx
C:\DOCUME~1\KAIFA\LOCALS~1\Temp/ccycaaaa.s:86 .data:00000001 WASHVAL
C:\DOCUME~1\KAIFA\LOCALS~1\Temp/ccycaaaa.s:95 .text:00000000 PlayStaticAsh
C:\DOCUME~1\KAIFA\LOCALS~1\Temp/ccycaaaa.s:174 .text:0000003e Play_Gradual
*COM*:00000005 WorkFlag
*COM*:00000002 wCurRedAsh
*COM*:00000002 wCurGreAsh
*COM*:00000002 wCurBluAsh
C:\DOCUME~1\KAIFA\LOCALS~1\Temp/ccycaaaa.s:390 .text:00000182 SaveWorkState
C:\DOCUME~1\KAIFA\LOCALS~1\Temp/ccycaaaa.s:859 .eeprom:00000000 bLastPlayIdx
C:\DOCUME~1\KAIFA\LOCALS~1\Temp/ccycaaaa.s:864 .eeprom:00000001 bColorAsh
*COM*:00000002 wCurRedAshVal
*COM*:00000002 wCurGreAshVal
*COM*:00000002 wCurBluAshVal
C:\DOCUME~1\KAIFA\LOCALS~1\Temp/ccycaaaa.s:595 .text:00000282 KeyYc
C:\DOCUME~1\KAIFA\LOCALS~1\Temp/ccycaaaa.s:700 .text:00000326 LoadWorkState
C:\DOCUME~1\KAIFA\LOCALS~1\Temp/ccycaaaa.s:818 .text:000003d6 InitWorkState
C:\DOCUME~1\KAIFA\LOCALS~1\Temp/ccycaaaa.s:886 .text:000003f4 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
eeprom_write_byte
eeprom_read_word
eeprom_write_word
eeprom_read_byte
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -