main.lst

来自「旋转16个LED灯控制程序」· LST 代码 · 共 1,175 行 · 第 1/3 页

LST
1,175
字号
 428 01f8 E82F      		mov r30,r24
 429 01fa FF27      		clr r31
 430 01fc E050      		subi r30,lo8(-(botLine))
 431 01fe F040      		sbci r31,hi8(-(botLine))
 432 0200 8081      		ld r24,Z
 433 0202 9927      		clr r25
 434 0204 8097      		sbiw r24,32
 435 0206 880F      		lsl r24
 436 0208 991F      		rol r25
 437 020a 10C0      		rjmp .L23
 438               	.L20:
 439               	.LM59:
 440 020c 8091 0000 		lds r24,topChar
 441 0210 9091 0000 		lds r25,(topChar)+1
 442 0214 8054      		subi r24,lo8(-(192))
 443 0216 9F4F      		sbci r25,hi8(-(192))
 444 0218 9093 0000 		sts (topChar)+1,r25
 445 021c 8093 0000 		sts topChar,r24
 446               	.LM60:
 447 0220 8091 0000 		lds r24,botChar
 448 0224 9091 0000 		lds r25,(botChar)+1
 449 0228 8054      		subi r24,lo8(-(192))
 450 022a 9F4F      		sbci r25,hi8(-(192))
 451               	.L23:
 452 022c 9093 0000 		sts (botChar)+1,r25
 453 0230 8093 0000 		sts botChar,r24
 454               	.LM61:
 455 0234 42E0      		ldi r20,lo8(2)
 456 0236 60E0      		ldi r22,lo8(fleds)
 457 0238 70E0      		ldi r23,hi8(fleds)
 458 023a 8091 0000 		lds r24,topChar
 459 023e 9091 0000 		lds r25,(topChar)+1
 460 0242 00D0      		rcall spieeprom_read
 461               	.LM62:
 462 0244 42E0      		ldi r20,lo8(2)
 463 0246 60E0      		ldi r22,lo8(fleds+2)
 464 0248 70E0      		ldi r23,hi8(fleds+2)
 465 024a 8091 0000 		lds r24,botChar
 466 024e 9091 0000 		lds r25,(botChar)+1
 467 0252 00D0      		rcall spieeprom_read
 468               	.LM63:
 469 0254 80E0      		ldi r24,lo8(0)
 470 0256 D4DE      		rcall clock_scroll
 471               	.L18:
 472               	/* epilogue: frame size=0 */
 473 0258 FF91      		pop r31
 474 025a EF91      		pop r30
 475 025c BF91      		pop r27
 476 025e AF91      		pop r26
 477 0260 9F91      		pop r25
 478 0262 8F91      		pop r24
 479 0264 7F91      		pop r23
 480 0266 6F91      		pop r22
 481 0268 5F91      		pop r21
 482 026a 4F91      		pop r20
 483 026c 3F91      		pop r19
 484 026e 2F91      		pop r18
 485 0270 0F90      		pop __tmp_reg__
 486 0272 0FBE      		out __SREG__,__tmp_reg__
 487 0274 0F90      		pop __tmp_reg__
 488 0276 1F90      		pop __zero_reg__
 489 0278 1895      		reti
 490               	/* epilogue end (size=17) */
 491               	/* function __vector_4 size 131 (97) */
 492               	.LFE4:
 494               	.global	__vector_1
 496               	__vector_1:
 497               	.LFB5:
 498               	.LM64:
 499               	/* prologue: frame size=0 */
 500 027a 1F92      		push __zero_reg__
 501 027c 0F92      		push __tmp_reg__
 502 027e 0FB6      		in __tmp_reg__,__SREG__
 503 0280 0F92      		push __tmp_reg__
 504 0282 1124      		clr __zero_reg__
 505 0284 8F93      		push r24
 506               	/* prologue end (size=6) */
 507               	.L25:
 508               	.LM65:
 509 0286 829B      		sbis 48-0x20,2
 510 0288 FECF      		rjmp .L25
 511               	.LM66:
 512 028a 8091 0000 		lds r24,sensor_timer+1
 513 028e 8F3F      		cpi r24,lo8(-1)
 514 0290 29F4      		brne .L28
 515               	.LM67:
 516 0292 1092 0000 		sts sensor_timer+1,__zero_reg__
 517               	.LM68:
 518 0296 88E0      		ldi r24,lo8(8)
 519 0298 81BD      		out 65-0x20,r24
 520               	.L29:
 521               	.LM69:
 522 029a FFCF      		rjmp .L29
 523               	.L28:
 524               	.LM70:
 525 029c 8FEF      		ldi r24,lo8(-1)
 526 029e 8093 0000 		sts sensor_timer+1,r24
 527               	/* epilogue: frame size=0 */
 528 02a2 8F91      		pop r24
 529 02a4 0F90      		pop __tmp_reg__
 530 02a6 0FBE      		out __SREG__,__tmp_reg__
 531 02a8 0F90      		pop __tmp_reg__
 532 02aa 1F90      		pop __zero_reg__
 533 02ac 1895      		reti
 534               	/* epilogue end (size=6) */
 535               	/* function __vector_1 size 26 (14) */
 536               	.LFE5:
 538               	.global	__vector_2
 540               	__vector_2:
 541               	.LFB6:
 542               	.LM71:
 543               	/* prologue: frame size=0 */
 544 02ae 1F92      		push __zero_reg__
 545 02b0 0F92      		push __tmp_reg__
 546 02b2 0FB6      		in __tmp_reg__,__SREG__
 547 02b4 0F92      		push __tmp_reg__
 548 02b6 1124      		clr __zero_reg__
 549 02b8 0F93      		push r16
 550 02ba 1F93      		push r17
 551 02bc 2F93      		push r18
 552 02be 3F93      		push r19
 553 02c0 4F93      		push r20
 554 02c2 5F93      		push r21
 555 02c4 6F93      		push r22
 556 02c6 7F93      		push r23
 557 02c8 8F93      		push r24
 558 02ca 9F93      		push r25
 559 02cc AF93      		push r26
 560 02ce BF93      		push r27
 561 02d0 EF93      		push r30
 562 02d2 FF93      		push r31
 563               	/* prologue end (size=19) */
 564               	.LM72:
 565               	/* #APP */
 566 02d4 A895      		wdr
 567               	.LM73:
 568               	/* #NOAPP */
 569 02d6 8091 0000 		lds r24,hall_debounce
 570 02da 8530      		cpi r24,lo8(5)
 571 02dc 08F4      		brsh .+2
 572 02de C6C0      		rjmp .L33
 573               	.LM74:
 574 02e0 1DBC      		out (76)+1-0x20,__zero_reg__
 575 02e2 1CBC      		out 76-0x20,__zero_reg__
 576               	.LM75:
 577 02e4 8091 0000 		lds r24,sensor_timer+1
 578 02e8 8823      		tst r24
 579 02ea 29F0      		breq .L35
 580 02ec 8091 0000 		lds r24,sensor_timer
 581 02f0 8430      		cpi r24,lo8(4)
 582 02f2 08F4      		brsh .+2
 583 02f4 A9C0      		rjmp .L34
 584               	.L35:
 585               	.LM76:
 586 02f6 8091 0000 		lds r24,sensor_timer
 587 02fa 8BBD      		out 75-0x20,r24
 588               	.LM77:
 589 02fc 82B7      		in r24,82-0x20
 590 02fe 8ABD      		out 74-0x20,r24
 591               	.LM78:
 592 0300 12BE      		out 82-0x20,__zero_reg__
 593               	.LM79:
 594 0302 8091 0000 		lds r24,dynamicREV
 595 0306 8F5F      		subi r24,lo8(-(1))
 596 0308 8093 0000 		sts dynamicREV,r24
 597               	.LM80:
 598 030c 20E0      		ldi r18,lo8(0)
 599               	.LM81:
 600 030e 8091 0000 		lds r24,dynamicREV
 601 0312 8A33      		cpi r24,lo8(58)
 602 0314 B8F0      		brlo .L47
 603 0316 90E3      		ldi r25,lo8(48)
 604               	.L39:
 605               	.LM82:
 606 0318 E22F      		mov r30,r18
 607 031a FF27      		clr r31
 608 031c E050      		subi r30,lo8(-(dynamicREV))
 609 031e F040      		sbci r31,hi8(-(dynamicREV))
 610 0320 9083      		st Z,r25
 611               	.LM83:
 612 0322 2330      		cpi r18,lo8(3)
 613 0324 41F0      		breq .L36
 614               	.LM84:
 615 0326 2F5F      		subi r18,lo8(-(1))
 616 0328 E22F      		mov r30,r18
 617 032a FF27      		clr r31
 618 032c E050      		subi r30,lo8(-(dynamicREV))
 619 032e F040      		sbci r31,hi8(-(dynamicREV))
 620 0330 8081      		ld r24,Z
 621 0332 8F5F      		subi r24,lo8(-(1))
 622 0334 8083      		st Z,r24
 623               	.L36:
 624 0336 E22F      		mov r30,r18
 625 0338 FF27      		clr r31
 626 033a E050      		subi r30,lo8(-(dynamicREV))
 627 033c F040      		sbci r31,hi8(-(dynamicREV))
 628 033e 8081      		ld r24,Z
 629 0340 8A33      		cpi r24,lo8(58)
 630 0342 50F7      		brsh .L39
 631               	.L47:
 632               	.LM85:
 633 0344 8091 0000 		lds r24,line_timer
 634 0348 8031      		cpi r24,lo8(16)
 635 034a 08F4      		brsh .+2
 636 034c 70C0      		rjmp .L40
 637               	.LM86:
 638 034e 8091 0000 		lds r24,line_timer
 639 0352 8051      		subi r24,lo8(-(-16))
 640 0354 8093 0000 		sts line_timer,r24
 641               	.LM87:
 642 0358 8091 0000 		lds r24,line_shift
 643 035c 8F5F      		subi r24,lo8(-(1))
 644 035e 8F70      		andi r24,lo8(15)
 645 0360 8093 0000 		sts line_shift,r24
 646               	.LM88:
 647 0364 0091 0000 		lds r16,line_shift
 648 0368 0023      		tst r16
 649 036a 09F0      		breq .+2
 650 036c 60C0      		rjmp .L40
 651               	.LM89:
 652 036e 8091 0000 		lds r24,cur_line
 653 0372 8E5F      		subi r24,lo8(-(2))
 654 0374 8093 0000 		sts cur_line,r24
 655               	.LM90:
 656 0378 8091 0000 		lds r24,cur_line
 657 037c 8630      		cpi r24,lo8(6)
 658 037e 10F0      		brlo .L42
 659               	.LM91:
 660 0380 0093 0000 		sts cur_line,r16
 661               	.L42:
 662               	.LBB2:
 663               	.LM92:
 664 0384 8091 0000 		lds r24,cur_line
 665 0388 E82F      		mov r30,r24
 666 038a FF27      		clr r31
 667 038c E050      		subi r30,lo8(-(lineOffsets))
 668 038e F040      		sbci r31,hi8(-(lineOffsets))
 669               	.LBE2:
 670               	/* #APP */
 671 0390 C895      		lpm
 672 0392 202D      		mov r18, r0
 673               		
 674               	.LM93:
 675               	/* #NOAPP */
 676 0394 822F      		mov r24,r18
 677 0396 9927      		clr r25
 678 0398 8050      		subi r24,lo8(-(lines))
 679 039a 9040      		sbci r25,hi8(-(lines))
 680 039c 40E1      		ldi r20,lo8(16)
 681 039e 50E0      		ldi r21,hi8(16)
 682 03a0 682F      		mov r22,r24
 683 03a2 792F      		mov r23,r25
 684 03a4 80E0      		ldi r24,lo8(topLine)
 685 03a6 90E0      		ldi r25,hi8(topLine)
 686 03a8 00D0      		rcall memcpy_P
 687               	.LM94:
 688 03aa 0093 0000 		sts dynamicType,r16
 689               	.LBB3:
 690               	.LM95:
 691 03ae 8091 0000 		lds r24,cur_line
 692 03b2 E82F      		mov r30,r24
 693 03b4 FF27      		clr r31
 694 03b6 E050      		subi r30,lo8(-(dInfo))
 695 03b8 F040      		sbci r31,hi8(-(dInfo))
 696               	.LBE3:
 697               	/* #APP */
 698 03ba C895      		lpm
 699 03bc 202D      		mov r18, r0
 700               		
 701               	.LM96:
 702               	/* #NOAPP */
 703 03be 2223      		tst r18
 704 03c0 61F0      		breq .L43
 705               	.LM97:
 706 03c2 822F      		mov r24,r18
 707 03c4 9927      		clr r25
 708 03c6 8F70      		andi r24,lo8(15)
 709 03c8 9070      		andi r25,hi8(15)
 710 03ca 8050      		subi r24,lo8(-(topLine))
 711 03cc 9040      		sbci r25,hi8(-(topLine))
 712 03ce 9093 0000 		sts (dynamicPtr)+1,r25
 713 03d2 8093 0000 		sts dynamicPtr,r24
 714               	.LM98:
 715 03d6 2093 0000 		sts dynamicType,r18
 716               	.L43:
 717               	.LM99:
 718 03da 8091 0000 		lds r24,cur_line
 719 03de 8F5F      		subi r24,lo8(-(1))
 720               	.LBB4:
 721               	.LM100:
 722 03e0 082F      		mov r16,r24
 723 03e2 1127      		clr r17
 724 03e4 F12F      		mov r31,r17
 725 03e6 E02F      		mov r30,r16
 726 03e8 E050      		subi r30,lo8(-(lineOffsets))
 727 03ea F040      		sbci r31,hi8(-(lineOffsets))
 728               	.LBE4:
 729               	/* #APP */
 730 03ec C895      		lpm
 731 03ee 202D      		mov r18, r0
 732               		
 733               	.LM101:
 734               	/* #NOAPP */
 735 03f0 822F      		mov r24,r18
 736 03f2 9927      		clr r25
 737 03f4 8050      		subi r24,lo8(-(lines))
 738 03f6 9040      		sbci r25,hi8(-(lines))
 739 03f8 40E1      		ldi r20,lo8(16)
 740 03fa 50E0      		ldi r21,hi8(16)
 741 03fc 682F      		mov r22,r24
 742 03fe 792F      		mov r23,r25
 743 0400 80E0      		ldi r24,lo8(botLine)
 744 0402 90E0      		ldi r25,hi8(botLine)
 745 0404 00D0      		rcall memcpy_P
 746               	.LBB5:
 747               	.LM102:
 748 0406 0050      		subi r16,lo8(-(dInfo))
 749 0408 1040      		sbci r17,hi8(-(dInfo))
 750 040a F12F      		mov r31,r17
 751 040c E02F      		mov r30,r16
 752               	/* #APP */
 753 040e C895      		lpm
 754 0410 202D      		mov r18, r0
 755               		
 756               	/* #NOAPP */
 757               	.LBE5:
 758               	.LM103:
 759 0412 2223      		tst r18
 760 0414 61F0      		breq .L40
 761               	.LM104:
 762 0416 822F      		mov r24,r18
 763 0418 9927      		clr r25
 764 041a 8F70      		andi r24,lo8(15)
 765 041c 9070      		andi r25,hi8(15)
 766 041e 8050      		subi r24,lo8(-(botLine))
 767 0420 9040      		sbci r25,hi8(-(botLine))
 768 0422 9093 0000 		sts (dynamicPtr)+1,r25
 769 0426 8093 0000 		sts dynamicPtr,r24
 770               	.LM105:
 771 042a 2093 0000 		sts dynamicType,r18
 772               	.L40:
 773               	.LM106:
 774 042e 8FE1      		ldi r24,lo8(31)
 775 0430 8093 0000 		sts charNum,r24
 776               	.LM107:
 777 0434 8FE0      		ldi r24,lo8(15)
 778 0436 8093 0000 		sts pixelNum,r24
 779               	.LM108:
 780 043a 8EB5      		in r24,78-0x20
 781 043c 8160      		ori r24,lo8(1)
 782 043e 8EBD      		out 78-0x20,r24
 783               	.LM109:
 784 0440 89B7      		in r24,89-0x20
 785 0442 8064      		ori r24,lo8(64)
 786 0444 89BF      		out 89-0x20,r24
 787 0446 0EC0      		rjmp .L45
 788               	.L34:
 789               	.LM110:
 790 0448 8CEF      		ldi r24,lo8(-4)
 791 044a 89DE      		rcall set_all
 792               	.LM111:
 793 044c 8EB5      		in r24,78-0x20
 794 044e 8E7F      		andi r24,lo8(-2)
 795 0450 8EBD      		out 78-0x20,r24
 796               	.LM112:
 797 0452 80E1      		ldi r24,lo8(16)
 798 0454 8093 0000 		sts line_timer,r24
 799               	.LM113:
 800 0458 8FE0      		ldi r24,lo8(15)
 801 045a 8093 0000 		sts line_shift,r24
 802               	.LM114:
 803 045e 85E0      		ldi r24,lo8(5)
 804 0460 8093 0000 		sts cur_line,r24
 805               	.L45:
 806               	.LM115:
 807 0464 1092 0000 		sts (sensor_timer)+1,__zero_reg__
 808 0468 1092 0000 		sts sensor_timer,__zero_reg__
 809               	.L33:
 810               	.LM116:
 811 046c 1092 0000 		sts hall_debounce,__zero_reg__
 812               	/* epilogue: frame size=0 */
 813 0470 FF91      		pop r31
 814 0472 EF91      		pop r30
 815 0474 BF91      		pop r27
 816 0476 AF91      		pop r26
 817 0478 9F91      		pop r25
 818 047a 8F91      		pop r24
 819 047c 7F91      		pop r23
 820 047e 6F91      		pop r22
 821 0480 5F91      		pop r21
 822 0482 4F91      		pop r20
 823 0484 3F91      		pop r19

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?