📄 robbot.lst
字号:
0602 F7D0 BCC 0x05FD
0603 23BB TST R27
0604 F031 BEQ 0x060B
0605 9536 LSR R19
0606 9527 ROR R18
0607 9517 ROR R17
0608 9507 ROR R16
0609 95BA DEC R27
060A F7D1 BNE 0x0605
060B 9508 RET
int2fp:
060C 2722 CLR R18
060D FD17 SBRC R17,7
060E 9520 COM R18
060F 2733 CLR R19
0610 FD27 SBRC R18,7
0611 9530 COM R19
long2fp:
0612 D158 RCALL savfacc1
0613 D001 RCALL ITOF
0614 C159 RJMP restorefacc1
ITOF:
0615 2788 CLR R24
0616 2333 TST R19
0617 F412 BPL 0x061A
0618 DF6A RCALL neg32
0619 9580 COM R24
061A 2FB0 MOV R27,R16
061B 2BB1 OR R27,R17
061C 2BB2 OR R27,R18
061D 2BB3 OR R27,R19
061E F409 BNE 0x0620
061F C167 RJMP minres
0620 E1B6 LDI R27,0x16
0621 C005 RJMP 0x0627
0622 95B3 INC R27
0623 9536 LSR R19
0624 9527 ROR R18
0625 9517 ROR R17
0626 9507 ROR R16
0627 2333 TST R19
0628 F7C9 BNE 0x0622
0629 2322 TST R18
062A F449 BNE 0x0634
062B 50B8 SUBI R27,0x8
062C 2F21 MOV R18,R17
062D 2F10 MOV R17,R16
062E E000 LDI R16,0
062F CFF9 RJMP 0x0629
0630 95BA DEC R27
0631 0F00 LSL R16
0632 1F11 ROL R17
0633 1F22 ROL R18
0634 F7DA BPL 0x0630
0635 2F3B MOV R19,R27
0636 C17A RJMP repack
save_floatregs:
0637 92DA ST R13,-Y
0638 92EA ST R14,-Y
0639 92FA ST R15,-Y
063A 938A ST R24,-Y
063B 922A ST R2,-Y
063C 923A ST R3,-Y
063D 924A ST R4,-Y
063E 939A ST R25,-Y
063F 93AA ST R26,-Y
0640 93BA ST R27,-Y
0641 9508 RET
restore_floatregs:
0642 91B9 LD R27,Y+
0643 91A9 LD R26,Y+
0644 9199 LD R25,Y+
0645 9049 LD R4,Y+
0646 9039 LD R3,Y+
0647 9029 LD R2,Y+
0648 9189 LD R24,Y+
0649 90F9 LD R15,Y+
064A 90E9 LD R14,Y+
064B 90D9 LD R13,Y+
064C 9508 RET
stk2arg1:
064D 842A LDD R2,Y+10
064E 843B LDD R3,Y+11
064F 844C LDD R4,Y+12
0650 859D LDD R25,Y+13
0651 9508 RET
stk2arg0:
0652 850E LDD R16,Y+14
0653 851F LDD R17,Y+15
0654 8928 LDD R18,Y+16
0655 8939 LDD R19,Y+17
0656 9508 RET
float_epilog:
0657 DFEA RCALL restore_floatregs
0658 920F PUSH R0
0659 B60F IN R0,0x3F
065A 9628 ADIW R28,0x8
065B BE0F OUT 0x3F,R0
065C 900F POP R0
065D 9508 RET
float_prolog:
065E DFD8 RCALL save_floatregs
065F DFF2 RCALL stk2arg0
0660 CFEC RJMP stk2arg1
add32fs:
0661 D001 RCALL add32f
0662 CEF0 RJMP push_arg4
add32f:
0663 DFFA RCALL float_prolog
0664 D00D RCALL FADD
0665 CFF1 RJMP float_epilog
sub32fs:
0666 D001 RCALL sub32f
0667 CEEB RJMP push_arg4
sub32f:
0668 DFF5 RCALL float_prolog
0669 D007 RCALL FSUB
066A CFEC RJMP float_epilog
fret2:
066B 2F8A MOV R24,R26
066C 2F39 MOV R19,R25
066D 2D24 MOV R18,R4
066E 2D13 MOV R17,R3
066F 2D02 MOV R16,R2
0670 C140 RJMP repack
FSUB:
0671 5890 SUBI R25,0x80
FADD:
0672 D12C RCALL unpack
0673 3890 CPI R25,0x80
0674 F3D9 BEQ 0x0670
0675 3830 CPI R19,0x80
0676 F3A1 BEQ 0x066B
0677 2FB3 MOV R27,R19
0678 1BB9 SUB R27,R25
0679 F3B3 BVS 0x0670
067A F02A BMI 0x0680
067B F431 BNE 0x0682
067C 1502 CP R16,R2
067D 0513 CPC R17,R3
067E 0524 CPC R18,R4
067F F410 BCC 0x0682
0680 D112 RCALL swapacc
0681 CFF5 RJMP 0x0677
0682 31B8 CPI R27,0x18
0683 F018 BCS 0x0687
0684 2422 CLR R2
0685 2433 CLR R3
0686 2444 CLR R4
0687 30B8 CPI R27,0x8
0688 F028 BCS 0x068E
0689 2C23 MOV R2,R3
068A 2C34 MOV R3,R4
068B 2444 CLR R4
068C 50B8 SUBI R27,0x8
068D CFF9 RJMP 0x0687
068E 23BB TST R27
068F F029 BEQ 0x0695
0690 9446 LSR R4
0691 9437 ROR R3
0692 9427 ROR R2
0693 95BA DEC R27
0694 F7D9 BNE 0x0690
0695 2FB8 MOV R27,R24
0696 27BA EOR R27,R26
0697 F042 BMI 0x06A0
0698 D014 RCALL 0x06AD
0699 F6B0 BCC 0x0670
069A 9527 ROR R18
069B 9517 ROR R17
069C 9507 ROR R16
069D 5F3F SUBI R19,0xFF
069E F68B BVC 0x0670
069F C0E0 RJMP maxres
06A0 D010 RCALL usub24
06A1 F409 BNE 0x06A3
06A2 C0E4 RJMP minres
06A3 F408 BCC 0x06A5
06A4 D0D5 RCALL negmant
06A5 2322 TST R18
06A6 F24A BMI 0x0670
06A7 0F00 LSL R16
06A8 1F11 ROL R17
06A9 1F22 ROL R18
06AA 5031 SUBI R19,1
06AB F7CB BVC 0x06A5
06AC C0D3 RJMP maxres
06AD 0D02 ADD R16,R2
06AE 1D13 ADC R17,R3
06AF 1D24 ADC R18,R4
06B0 9508 RET
usub24:
06B1 1902 SUB R16,R2
06B2 0913 SBC R17,R3
06B3 0924 SBC R18,R4
06B4 9508 RET
div32fs:
06B5 D001 RCALL div32f
06B6 CE9C RJMP push_arg4
div32f:
06B7 DFA6 RCALL float_prolog
06B8 D022 RCALL FDIV
06B9 CF9D RJMP float_epilog
06BA 93BA ST R27,-Y
06BB 24DD CLR R13
06BC 24EE CLR R14
06BD 24FF CLR R15
06BE E1B8 LDI R27,0x18
06BF 1502 CP R16,R2
06C0 0513 CPC R17,R3
06C1 0524 CPC R18,R4
06C2 F028 BCS 0x06C8
06C3 1902 SUB R16,R2
06C4 0913 SBC R17,R3
06C5 0924 SBC R18,R4
06C6 9408 BSET 0
06C7 C001 RJMP 0x06C9
06C8 9488 BCLR 0
06C9 1CDD ROL R13
06CA 1CEE ROL R14
06CB 1CFF ROL R15
06CC 0F00 LSL R16
06CD 1F11 ROL R17
06CE 1F22 ROL R18
06CF 95BA DEC R27
06D0 F771 BNE 0x06BF
06D1 2D0D MOV R16,R13
06D2 2D1E MOV R17,R14
06D3 2D2F MOV R18,R15
06D4 91B9 LD R27,Y+
06D5 9508 RET
fdiv10:
06D6 2422 CLR R2
06D7 2433 CLR R3
06D8 E2B0 LDI R27,0x20
06D9 2E4B MOV R4,R27
06DA E491 LDI R25,0x41
FDIV:
06DB 2399 TST R25
06DC F119 BEQ 0x0700
06DD 2333 TST R19
06DE F141 BEQ 0x0707
06DF D0BF RCALL unpack
06E0 F131 BEQ 0x0707
06E1 278A EOR R24,R26
06E2 9408 BSET 0
06E3 0B39 SBC R19,R25
06E4 F0E3 BVS 0x0701
06E5 9446 LSR R4
06E6 9437 ROR R3
06E7 9427 ROR R2
06E8 9526 LSR R18
06E9 9517 ROR R17
06EA 9507 ROR R16
06EB DFCE RCALL 0x06BA
06EC 2322 TST R18
06ED F02A BMI 0x06F3
06EE 0F00 LSL R16
06EF 1F11 ROL R17
06F0 1F22 ROL R18
06F1 5031 SUBI R19,1
06F2 F073 BVS 0x0701
06F3 2FB0 MOV R27,R16
06F4 95B6 LSR R27
06F5 F048 BCS 0x06FF
06F6 2300 TST R16
06F7 F43A BPL 0x06FF
06F8 2311 TST R17
06F9 F42A BPL 0x06FF
06FA E0B1 LDI R27,1
06FB 0F0B ADD R16,R27
06FC 27BB CLR R27
06FD 1F1B ADC R17,R27
06FE 1F2B ADC R18,R27
06FF C0B1 RJMP repack
0700 C006 RJMP 0x0707
0701 E7BF LDI R27,0x7F
0702 2F3B MOV R19,R27
0703 2B2B OR R18,R27
0704 EF0F LDI R16,0xFF
0705 EF1F LDI R17,0xFF
0706 9508 RET
0707 2700 CLR R16
0708 2711 CLR R17
0709 2722 CLR R18
070A 2733 CLR R19
070B 2788 CLR R24
070C 9508 RET
cmp32f:
070D DF50 RCALL float_prolog
070E D001 RCALL FLTCP
070F CF47 RJMP float_epilog
FLTCP:
0710 D002 RCALL 0x0713
0711 23BB TST R27
0712 9508 RET
0713 2333 TST R19
0714 F082 BMI 0x0725
0715 2399 TST R25
0716 F042 BMI 0x071F
0717 1739 CP R19,R25
0718 F040 BCS 0x0721
0719 F429 BNE 0x071F
071A 1502 CP R16,R2
071B 0513 CPC R17,R3
071C 0524 CPC R18,R4
071D F018 BCS 0x0721
071E F021 BEQ 0x0723
071F E0B1 LDI R27,1
0720 9508 RET
0721 EFBF LDI R27,0xFF
0722 9508 RET
0723 27BB CLR R27
0724 9508 RET
0725 2399 TST R25
0726 F7D2 BPL 0x0721
0727 1739 CP R19,R25
0728 F3B0 BCS 0x071F
0729 F7B9 BNE 0x0721
072A 1502 CP R16,R2
072B 0513 CPC R17,R3
072C 0524 CPC R18,R4
072D F388 BCS 0x071F
072E F3A1 BEQ 0x0723
072F CFF1 RJMP 0x0721
0730 E7BF LDI R27,0x7F
0731 2F3B MOV R19,R27
0732 2B2B OR R18,R27
0733 EF0F LDI R16,0xFF
0734 EF1F LDI R17,0xFF
0735 9508 RET
0736 2700 CLR R16
0737 2711 CLR R17
0738 2722 CLR R18
0739 2733 CLR R19
073A 2788 CLR R24
073B 9508 RET
mpy32fs:
073C D001 RCALL mpy32f
073D CE15 RJMP push_arg4
mpy32f:
073E DF1F RCALL float_prolog
073F D001 RCALL FMUL
0740 CF16 RJMP float_epilog
FMUL:
0741 D05D RCALL unpack
0742 F399 BEQ 0x0736
0743 3890 CPI R25,0x80
0744 F389 BEQ 0x0736
0745 278A EOR R24,R26
0746 9408 BSET 0
0747 1F39 ADC R19,R25
0748 F33B BVS 0x0730
0749 D00A RCALL umul24
074A 2322 TST R18
074B F02A BMI 0x0751
074C 953A DEC R19
074D 0CFF LSL R15
074E 1F00 ROL R16
074F 1F11 ROL R17
0750 1F22 ROL R18
0751 5F3F SUBI R19,0xFF
0752 F2EB BVS 0x0730
0753 C05D RJMP repack
umul24:
0754 939A ST R25,-Y
0755 24DD CLR R13
0756 24EE CLR R14
0757 24FF CLR R15
0758 27BB CLR R27
0759 E198 LDI R25,0x18
075A 0CDD LSL R13
075B 1CEE ROL R14
075C 1CFF ROL R15
075D 1F00 ROL R16
075E 1F11 ROL R17
075F 1F22 ROL R18
0760 F430 BCC 0x0767
0761 0CD2 ADD R13,R2
0762 1CE3 ADC R14,R3
0763 1CF4 ADC R15,R4
0764 1F0B ADC R16,R27
0765 1F1B ADC R17,R27
0766 1F2B ADC R18,R27
0767 959A DEC R25
0768 F789 BNE 0x075A
0769 9199 LD R25,Y+
076A 9508 RET
savfacc1:
076B 938A ST R24,-Y
076C 93BA ST R27,-Y
076D 9508 RET
restorefacc1:
076E 91B9 LD R27,Y+
076F 9189 LD R24,Y+
0770 9508 RET
unpackfacc1:
0771 2F83 MOV R24,R19
0772 7880 ANDI R24,0x80
0773 0F22 LSL R18
0774 1F33 ROL R19
0775 5830 SUBI R19,0x80
0776 9408 BSET 0
0777 9527 ROR R18
0778 3830 CPI R19,0x80
0779 9508 RET
negmant:
077A 9510 COM R17
077B 9520 COM R18
077C 9501 NEG R16
077D 4F1F SBCI R17,0xFF
077E 4F2F SBCI R18,0xFF
077F 9508 RET
maxres:
0780 E7BF LDI R27,0x7F
0781 2F3B MOV R19,R27
0782 2B2B OR R18,R27
0783 EFBF LDI R27,0xFF
0784 2F0B MOV R16,R27
0785 2F1B MOV R17,R27
0786 9508 RET
minres:
0787 2700 CLR R16
0788 2711 CLR R17
0789 2722 CLR R18
078A 2733 CLR R19
078B 2788 CLR R24
078C 9508 RET
ac1toac2:
078D 2F93 MOV R25,R19
078E 2E20 MOV R2,R16
078F 2E31 MOV R3,R17
0790 2E42 MOV R4,R18
0791 2FA8 MOV R26,R24
0792 9508 RET
swapacc:
0793 922A ST R2,-Y
0794 923A ST R3,-Y
0795 924A ST R4,-Y
0796 939A ST R25,-Y
0797 93AA ST R26,-Y
0798 DFF4 RCALL ac1toac2
0799 9189 LD R24,Y+
079A 9139 LD R19,Y+
079B 9129 LD R18,Y+
079C 9119 LD R17,Y+
079D 9109 LD R16,Y+
079E 9508 RET
unpack:
079F 2F83 MOV R24,R19
07A0 E8B0 LDI R27,0x80
07A1 0F22 LSL R18
07A2 1F33 ROL R19
07A3 273B EOR R19,R27
07A4 0FBB LSL R27
07A5 9527 ROR R18
07A6 7880 ANDI R24,0x80
07A7 2FA9 MOV R26,R25
07A8 E8B0 LDI R27,0x80
07A9 0C44 LSL R4
07AA 1F99 ROL R25
07AB 279B EOR R25,R27
07AC 0FBB LSL R27
07AD 9447 ROR R4
07AE 78A0 ANDI R26,0x80
07AF 3830 CPI R19,0x80
07B0 9508 RET
repack:
07B1 0F22 LSL R18
07B2 E8B0 LDI R27,0x80
07B3 27B3 EOR R27,R19
07B4 0F88 LSL R24
07B5 95B7 ROR R27
07B6 9527 ROR R18
07B7 2F3B MOV R19,R27
07B8 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -