📄 计算器.lst
字号:
531 1F11 ROL R17
532 1F22 ROL R18
533 1F33 ROL R19
534 954A DEC R20
535 F7D1 BNE 0x0530
536 C005 RJMP 0x053C
537 E73F LDI R19,0x7F
538 2F23 MOV R18,R19
539 2F13 MOV R17,R19
53A 2F03 MOV R16,R19
53B C004 RJMP 0x0540
53C 2366 TST R22
53D F011 BEQ 0x0540
53E 940E 0463 CALL neg32
540 9169 LD R22,Y+
541 9159 LD R21,Y+
542 9149 LD R20,Y+
543 9508 RET
uint2fp:
544 9468 BSET 6
545 C001 RJMP 0x0547
int2fp:
546 94E8 BCLR 6
547 2722 CLR R18
548 2733 CLR R19
549 F046 BRTS 0x0552
54A FD17 SBRC R17,7
54B 9520 COM R18
54C FD17 SBRC R17,7
54D 9530 COM R19
54E C002 RJMP long2fp
ulong2fp:
54F 9468 BSET 6
550 C001 RJMP 0x0552
long2fp:
551 94E8 BCLR 6
552 934A ST R20,-Y
553 935A ST R21,-Y
554 936A ST R22,-Y
555 E147 LDI R20,0x17
556 2766 CLR R22
557 2755 CLR R21
558 F02E BRTS 0x055E
559 2333 TST R19
55A F41A BPL 0x055E
55B 940E 0463 CALL neg32
55D E860 LDI R22,0x80
55E 940E 0639 CALL normalize_and_pack
560 9169 LD R22,Y+
561 9159 LD R21,Y+
562 9149 LD R20,Y+
563 9508 RET
fpdiv1:
564 93FA ST R31,-Y
565 93EA ST R30,-Y
566 81EA LDD R30,Y+2
567 81FB LDD R31,Y+3
568 D027 RCALL 0x0590
569 91E9 LD R30,Y+
56A 91F9 LD R31,Y+
56B 9622 ADIW R28,2
56C 9508 RET
fpdiv2:
56D 93FA ST R31,-Y
56E 93EA ST R30,-Y
56F 2FEC MOV R30,R28
570 2FFD MOV R31,R29
571 9632 ADIW R30,2
572 D01D RCALL 0x0590
573 91E9 LD R30,Y+
574 91F9 LD R31,Y+
575 9624 ADIW R28,4
576 9508 RET
fpdiv1x:
577 93FA ST R31,-Y
578 93EA ST R30,-Y
579 81EA LDD R30,Y+2
57A 81FB LDD R31,Y+3
57B D014 RCALL 0x0590
57C 91E9 LD R30,Y+
57D 91F9 LD R31,Y+
57E 8339 STD Y+1,R19
57F 8328 STD Y+0,R18
580 931A ST R17,-Y
581 930A ST R16,-Y
582 9508 RET
fpdiv2x:
583 93FA ST R31,-Y
584 93EA ST R30,-Y
585 2FEC MOV R30,R28
586 2FFD MOV R31,R29
587 9632 ADIW R30,2
588 D007 RCALL 0x0590
589 91E9 LD R30,Y+
58A 91F9 LD R31,Y+
58B 833B STD Y+3,R19
58C 832A STD Y+2,R18
58D 8319 STD Y+1,R17
58E 8308 STD Y+0,R16
58F 9508 RET
590 924A ST R4,-Y
591 925A ST R5,-Y
592 926A ST R6,-Y
593 927A ST R7,-Y
594 928A ST R8,-Y
595 929A ST R9,-Y
596 92AA ST R10,-Y
597 92BA ST R11,-Y
598 92CA ST R12,-Y
599 92DA ST R13,-Y
59A 92EA ST R14,-Y
59B 92FA ST R15,-Y
59C 934A ST R20,-Y
59D 935A ST R21,-Y
59E 936A ST R22,-Y
59F 937A ST R23,-Y
5A0 938A ST R24,-Y
5A1 939A ST R25,-Y
5A2 933A ST R19,-Y
5A3 932A ST R18,-Y
5A4 931A ST R17,-Y
5A5 930A ST R16,-Y
5A6 8100 LDD R16,Z+0
5A7 8111 LDD R17,Z+1
5A8 8122 LDD R18,Z+2
5A9 8133 LDD R19,Z+3
5AA 940E 0624 CALL unpacku
5AC F409 BNE 0x05AE
5AD C061 RJMP 0x060F
5AE 2EE6 MOV R14,R22
5AF 2ED5 MOV R13,R21
5B0 2EC4 MOV R12,R20
5B1 2EB3 MOV R11,R19
5B2 2EA2 MOV R10,R18
5B3 2E91 MOV R9,R17
5B4 2E80 MOV R8,R16
5B5 9109 LD R16,Y+
5B6 9119 LD R17,Y+
5B7 9129 LD R18,Y+
5B8 9139 LD R19,Y+
5B9 940E 0624 CALL unpacku
5BB F191 BEQ 0x05EE
5BC 256E EOR R22,R14
5BD 194C SUB R20,R12
5BE 095D SBC R21,R13
5BF 3840 CPI R20,0x80
5C0 0753 CPC R21,R19
5C1 F00C BLT 0x05C3
5C2 C03E RJMP 0x0601
5C3 3841 CPI R20,0x81
5C4 EF7F LDI R23,0xFF
5C5 0757 CPC R21,R23
5C6 F40C BGE 0x05C8
5C7 C042 RJMP 0x060A
5C8 E280 LDI R24,0x20
5C9 2477 CLR R7
5CA 2E63 MOV R6,R19
5CB 2E52 MOV R5,R18
5CC 2E41 MOV R4,R17
5CD 2F30 MOV R19,R16
5CE 2722 CLR R18
5CF 2711 CLR R17
5D0 2700 CLR R16
5D1 9466 LSR R6
5D2 9457 ROR R5
5D3 9447 ROR R4
5D4 9537 ROR R19
5D5 9527 ROR R18
5D6 0F00 LSL R16
5D7 1F11 ROL R17
5D8 1F22 ROL R18
5D9 1F33 ROL R19
5DA 1C44 ROL R4
5DB 1C55 ROL R5
5DC 1C66 ROL R6
5DD 1C77 ROL R7
5DE F028 BCS 0x05E4
5DF 1848 SUB R4,R8
5E0 0859 SBC R5,R9
5E1 086A SBC R6,R10
5E2 087B SBC R7,R11
5E3 C004 RJMP 0x05E8
5E4 0C48 ADD R4,R8
5E5 1C59 ADC R5,R9
5E6 1C6A ADC R6,R10
5E7 1C7B ADC R7,R11
5E8 F00A BMI 0x05EA
5E9 6001 ORI R16,1
5EA 958A DEC R24
5EB F751 BNE 0x05D6
5EC 940E 0639 CALL normalize_and_pack
5EE 9199 LD R25,Y+
5EF 9189 LD R24,Y+
5F0 9179 LD R23,Y+
5F1 9169 LD R22,Y+
5F2 9159 LD R21,Y+
5F3 9149 LD R20,Y+
5F4 90F9 LD R15,Y+
5F5 90E9 LD R14,Y+
5F6 90D9 LD R13,Y+
5F7 90C9 LD R12,Y+
5F8 90B9 LD R11,Y+
5F9 90A9 LD R10,Y+
5FA 9099 LD R9,Y+
5FB 9089 LD R8,Y+
5FC 9079 LD R7,Y+
5FD 9069 LD R6,Y+
5FE 9059 LD R5,Y+
5FF 9049 LD R4,Y+
600 9508 RET
601 EF0F LDI R16,0xFF
602 2F10 MOV R17,R16
603 E72F LDI R18,0x7F
604 E73F LDI R19,0x7F
605 2366 TST R22
606 F339 BEQ 0x05EE
607 940E 0463 CALL neg32
609 CFE4 RJMP 0x05EE
60A 2700 CLR R16
60B 2F10 MOV R17,R16
60C 2F20 MOV R18,R16
60D 2F30 MOV R19,R16
60E CFDF RJMP 0x05EE
60F 9109 LD R16,Y+
610 9119 LD R17,Y+
611 9129 LD R18,Y+
612 9139 LD R19,Y+
613 CFED RJMP 0x0601
unpacks:
614 D00F RCALL unpacku
615 F029 BEQ 0x061B
616 2366 TST R22
617 F011 BEQ 0x061A
618 940E 0463 CALL neg32
61A 9498 BCLR 1
61B 9508 RET
tstR16_R19:
61C 2300 TST R16
61D F429 BNE 0x0623
61E 2311 TST R17
61F F419 BNE 0x0623
620 2322 TST R18
621 F409 BNE 0x0623
622 2333 TST R19
623 9508 RET
unpacku:
624 DFF7 RCALL tstR16_R19
625 F079 BEQ 0x0635
626 2F63 MOV R22,R19
627 7860 ANDI R22,0x80
628 0F22 LSL R18
629 1F33 ROL R19
62A 2F43 MOV R20,R19
62B E75F LDI R21,0x7F
62C 1B45 SUB R20,R21
62D 2755 CLR R21
62E 4050 SBCI R21,0
62F 9526 LSR R18
630 E830 LDI R19,0x80
631 2B23 OR R18,R19
632 2733 CLR R19
633 9498 BCLR 1
634 9508 RET
635 2744 CLR R20
636 2755 CLR R21
637 2766 CLR R22
638 9508 RET
normalize_and_pack:
639 DFE2 RCALL tstR16_R19
63A F121 BEQ 0x065F
63B 939A ST R25,-Y
63C 938A ST R24,-Y
63D E78E LDI R24,0x7E
63E E090 LDI R25,0
63F 2333 TST R19
640 F051 BEQ 0x064B
641 9536 LSR R19
642 9527 ROR R18
643 9517 ROR R17
644 9507 ROR R16
645 1748 CP R20,R24
646 0759 CPC R21,R25
647 F4C4 BGE 0x0660
648 5F4F SUBI R20,0xFF
649 4F5F SBCI R21,0xFF
64A CFF4 RJMP 0x063F
64B 9580 COM R24
64C 9590 COM R25
64D 9601 ADIW R24,1
64E 2322 TST R18
64F F0AA BMI 0x0665
650 0F00 LSL R16
651 1F11 ROL R17
652 1F22 ROL R18
653 1748 CP R20,R24
654 0759 CPC R21,R25
655 F01C BLT 0x0659
656 5041 SUBI R20,1
657 4050 SBCI R21,0
658 CFF5 RJMP 0x064E
659 2700 CLR R16
65A 2711 CLR R17
65B 2722 CLR R18
65C 2733 CLR R19
65D 9189 LD R24,Y+
65E 9199 LD R25,Y+
65F 9508 RET
660 2733 CLR R19
661 EF0F LDI R16,0xFF
662 2F10 MOV R17,R16
663 E72F LDI R18,0x7F
664 2F32 MOV R19,R18
665 9189 LD R24,Y+
666 9199 LD R25,Y+
pack:
667 DFB4 RCALL tstR16_R19
668 F039 BEQ 0x0670
669 5841 SUBI R20,0x81
66A 4F5F SBCI R21,0xFF
66B 2F34 MOV R19,R20
66C 0F22 LSL R18
66D 9536 LSR R19
66E 9527 ROR R18
66F 2B36 OR R19,R22
670 9508 RET
fpneg:
671 DFAA RCALL tstR16_R19
672 F021 BEQ 0x0677
673 930F PUSH R16
674 E800 LDI R16,0x80
675 2730 EOR R19,R16
676 910F POP R16
677 9508 RET
fpneg2:
678 DFF8 RCALL fpneg
679 933A ST R19,-Y
67A 932A ST R18,-Y
67B 931A ST R17,-Y
67C 930A ST R16,-Y
67D 9508 RET
saveR8toR25:
67E 928A ST R8,-Y
67F 929A ST R9,-Y
680 92AA ST R10,-Y
681 92BA ST R11,-Y
682 92CA ST R12,-Y
683 92DA ST R13,-Y
684 92EA ST R14,-Y
685 92FA ST R15,-Y
686 934A ST R20,-Y
687 935A ST R21,-Y
688 936A ST R22,-Y
689 937A ST R23,-Y
68A 938A ST R24,-Y
68B 939A ST R25,-Y
68C 9508 RET
restoreR8toR25:
68D 9199 LD R25,Y+
68E 9189 LD R24,Y+
68F 9179 LD R23,Y+
690 9169 LD R22,Y+
691 9159 LD R21,Y+
692 9149 LD R20,Y+
693 90F9 LD R15,Y+
694 90E9 LD R14,Y+
695 90D9 LD R13,Y+
696 90C9 LD R12,Y+
697 90B9 LD R11,Y+
698 90A9 LD R10,Y+
699 9099 LD R9,Y+
69A 9089 LD R8,Y+
69B 9508 RET
fpmule:
69C 940E 067E CALL saveR8toR25
69E 93AA ST R26,-Y
69F 93BA ST R27,-Y
6A0 940E 0624 CALL unpacku
6A2 F1D1 BEQ 0x06DD
6A3 2EE6 MOV R14,R22
6A4 2ED5 MOV R13,R21
6A5 2EC4 MOV R12,R20
6A6 2EB3 MOV R11,R19
6A7 2EA2 MOV R10,R18
6A8 2E91 MOV R9,R17
6A9 2E80 MOV R8,R16
6AA 8100 LDD R16,Z+0
6AB 8111 LDD R17,Z+1
6AC 8122 LDD R18,Z+2
6AD 8133 LDD R19,Z+3
6AE 940E 0624 CALL unpacku
6B0 F161 BEQ 0x06DD
6B1 256E EOR R22,R14
6B2 0D4C ADD R20,R12
6B3 1D5D ADC R21,R13
6B4 3840 CPI R20,0x80
6B5 0753 CPC R21,R19
6B6 F55C BGE 0x06E2
6B7 3841 CPI R20,0x81
6B8 EF7F LDI R23,0xFF
6B9 0757 CPC R21,R23
6BA F164 BLT 0x06E7
6BB 9EA2 MUL R10,R18
6BC 2DB1 MOV R27,R1
6BD 2DA0 MOV R26,R0
6BE 9E91 MUL R9,R17
6BF 2D91 MOV R25,R1
6C0 2D80 MOV R24,R0
6C1 9EA0 MUL R10,R16
6C2 0D80 ADD R24,R0
6C3 1D91 ADC R25,R1
6C4 1FA3 ADC R26,R19
6C5 1FB3 ADC R27,R19
6C6 9E82 MUL R8,R18
6C7 0D80 ADD R24,R0
6C8 1D91 ADC R25,R1
6C9 1FA3 ADC R26,R19
6CA 1FB3 ADC R27,R19
6CB 9E92 MUL R9,R18
6CC 0D90 ADD R25,R0
6CD 1DA1 ADC R26,R1
6CE 1FB3 ADC R27,R19
6CF 9EA1 MUL R10,R17
6D0 0D90 ADD R25,R0
6D1 1DA1 ADC R26,R1
6D2 1FB3 ADC R27,R19
6D3 2F2B MOV R18,R27
6D4 2F1A MOV R17,R26
6D5 2F09 MOV R16,R25
6D6 0F88 LSL R24
6D7 1F00 ROL R16
6D8 1F11 ROL R17
6D9 1F22 ROL R18
6DA 1F33 ROL R19
6DB 940E 0639 CALL normalize_and_pack
6DD 91B9 LD R27,Y+
6DE 91A9 LD R26,Y+
6DF 940E 068D CALL restoreR8toR25
6E1 9508 RET
6E2 EF0F LDI R16,0xFF
6E3 2F10 MOV R17,R16
6E4 E72F LDI R18,0x7F
6E5 E74F LDI R20,0x7F
6E6 CFF6 RJMP 0x06DD
6E7 2700 CLR R16
6E8 2F10 MOV R17,R16
6E9 2F20 MOV R18,R16
6EA 2F30 MOV R19,R16
6EB CFF1 RJMP 0x06DD
fpmule1:
6EC 93FA ST R31,-Y
6ED 93EA ST R30,-Y
6EE 81EA LDD R30,Y+2
6EF 81FB LDD R31,Y+3
6F0 940E 069C CALL fpmule
6F2 91E9 LD R30,Y+
6F3 91F9 LD R31,Y+
6F4 9622 ADIW R28,2
6F5 9508 RET
fpcmp:
6F6 940E 0486 CALL fpsub
6F8 2333 TST R19
6F9 F03A BMI 0x0701
6FA 940E 061C CALL tstR16_R19
6FC F011 BEQ 0x06FF
6FD E001 LDI R16,1
6FE 9508 RET
6FF 2700 CLR R16
700 9508 RET
701 EF0F LDI R16,0xFF
702 9508 RET
fpcmp2:
703 93FA ST R31,-Y
704 93EA ST R30,-Y
705 2FEC MOV R30,R28
706 2FFD MOV R31,R29
707 9632 ADIW R30,2
708 940E 06F6 CALL fpcmp
70A 91E9 LD R30,Y+
70B 91F9 LD R31,Y+
70C 9624 ADIW R28,4
70D 2300 TST R16
70E 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -