📄 adc_port.lst
字号:
itof3:
0683 2322 TST R18
0684 F449 BNE 0x068E
0685 50B8 SUBI R27,0x8
0686 2F21 MOV R18,R17
0687 2F10 MOV R17,R16
0688 E000 LDI R16,0
0689 CFF9 RJMP itof3
068A 95BA DEC R27
068B 0F00 LSL R16
068C 1F11 ROL R17
068D 1F22 ROL R18
068E F7DA BPL 0x068A
068F 2F3B MOV R19,R27
0690 940C083E JMP repack
save_floatregs:
0692 92DA ST R13,-Y
0693 92EA ST R14,-Y
0694 92FA ST R15,-Y
0695 938A ST R24,-Y
0696 922A ST R2,-Y
0697 923A ST R3,-Y
0698 924A ST R4,-Y
0699 939A ST R25,-Y
069A 93AA ST R26,-Y
069B 93BA ST R27,-Y
069C 9508 RET
restore_floatregs:
069D 91B9 LD R27,Y+
069E 91A9 LD R26,Y+
069F 9199 LD R25,Y+
06A0 9049 LD R4,Y+
06A1 9039 LD R3,Y+
06A2 9029 LD R2,Y+
06A3 9189 LD R24,Y+
06A4 90F9 LD R15,Y+
06A5 90E9 LD R14,Y+
06A6 90D9 LD R13,Y+
06A7 9508 RET
stk2arg1:
06A8 842A LDD R2,Y+10
06A9 843B LDD R3,Y+11
06AA 844C LDD R4,Y+12
06AB 859D LDD R25,Y+13
06AC 9508 RET
stk2arg0:
06AD 850E LDD R16,Y+14
06AE 851F LDD R17,Y+15
06AF 8928 LDD R18,Y+16
06B0 8939 LDD R19,Y+17
06B1 9508 RET
float_epilog:
06B2 DFEA RCALL restore_floatregs
06B3 920F PUSH R0
06B4 B60F IN R0,0x3F
06B5 9628 ADIW R28,0x8
06B6 BE0F OUT 0x3F,R0
06B7 900F POP R0
06B8 9508 RET
float_prolog:
06B9 DFD8 RCALL save_floatregs
06BA DFF2 RCALL stk2arg0
06BB CFEC RJMP stk2arg1
add32fs:
06BC D002 RCALL add32f
06BD 940C0593 JMP push_arg4
add32f:
06BF 940E06B9 CALL float_prolog
06C1 D012 RCALL FADD
06C2 940C06B2 JMP float_epilog
sub32fs:
06C4 D002 RCALL sub32f
06C5 940C0593 JMP push_arg4
sub32f:
06C7 940E06B9 CALL float_prolog
06C9 D009 RCALL FSUB
06CA 940C06B2 JMP float_epilog
fret2:
06CC 2F8A MOV R24,R26
06CD 2F39 MOV R19,R25
06CE 2D24 MOV R18,R4
06CF 2D13 MOV R17,R3
06D0 2D02 MOV R16,R2
06D1 940C083E JMP repack
FSUB:
06D3 5890 SUBI R25,0x80
FADD:
06D4 940E082C CALL unpack
06D6 3890 CPI R25,0x80
06D7 F3C9 BEQ 0x06D1
06D8 3830 CPI R19,0x80
06D9 F391 BEQ 0x06CC
06DA 2FB3 MOV R27,R19
06DB 1BB9 SUB R27,R25
06DC F3A3 BVS 0x06D1
06DD F02A BMI 0x06E3
06DE F439 BNE 0x06E6
06DF 1502 CP R16,R2
06E0 0513 CPC R17,R3
06E1 0524 CPC R18,R4
06E2 F418 BCC 0x06E6
06E3 940E0820 CALL swapacc
06E5 CFF4 RJMP 0x06DA
06E6 31B8 CPI R27,0x18
06E7 F018 BCS 0x06EB
06E8 2422 CLR R2
06E9 2433 CLR R3
06EA 2444 CLR R4
06EB 30B8 CPI R27,0x8
06EC F028 BCS 0x06F2
06ED 2C23 MOV R2,R3
06EE 2C34 MOV R3,R4
06EF 2444 CLR R4
06F0 50B8 SUBI R27,0x8
06F1 CFF9 RJMP 0x06EB
06F2 23BB TST R27
06F3 F029 BEQ 0x06F9
06F4 9446 LSR R4
06F5 9437 ROR R3
06F6 9427 ROR R2
06F7 95BA DEC R27
06F8 F7D9 BNE 0x06F4
06F9 2FB8 MOV R27,R24
06FA 27BA EOR R27,R26
06FB F04A BMI 0x0705
06FC D018 RCALL 0x0715
06FD F698 BCC 0x06D1
06FE 9527 ROR R18
06FF 9517 ROR R17
0700 9507 ROR R16
0701 5F3F SUBI R19,0xFF
0702 F673 BVC 0x06D1
0703 940C080D JMP maxres
0705 D013 RCALL usub24
0706 F411 BNE 0x0709
0707 940C0814 JMP minres
0709 F410 BCC 0x070C
070A 940E0807 CALL negmant
070C 2322 TST R18
070D F21A BMI 0x06D1
070E 0F00 LSL R16
070F 1F11 ROL R17
0710 1F22 ROL R18
0711 5031 SUBI R19,1
0712 F7CB BVC 0x070C
0713 940C080D JMP maxres
0715 0D02 ADD R16,R2
0716 1D13 ADC R17,R3
0717 1D24 ADC R18,R4
0718 9508 RET
usub24:
0719 1902 SUB R16,R2
071A 0913 SBC R17,R3
071B 0924 SBC R18,R4
071C 9508 RET
div32fs:
071D D002 RCALL div32f
071E 940C0593 JMP push_arg4
div32f:
0720 940E06B9 CALL float_prolog
0722 D023 RCALL FDIV
0723 940C06B2 JMP float_epilog
0725 93BA ST R27,-Y
0726 24DD CLR R13
0727 24EE CLR R14
0728 24FF CLR R15
0729 E1B8 LDI R27,0x18
072A 1502 CP R16,R2
072B 0513 CPC R17,R3
072C 0524 CPC R18,R4
072D F028 BCS 0x0733
072E 1902 SUB R16,R2
072F 0913 SBC R17,R3
0730 0924 SBC R18,R4
0731 9408 BSET 0
0732 C001 RJMP 0x0734
0733 9488 BCLR 0
0734 1CDD ROL R13
0735 1CEE ROL R14
0736 1CFF ROL R15
0737 0F00 LSL R16
0738 1F11 ROL R17
0739 1F22 ROL R18
073A 95BA DEC R27
073B F771 BNE 0x072A
073C 2D0D MOV R16,R13
073D 2D1E MOV R17,R14
073E 2D2F MOV R18,R15
073F 91B9 LD R27,Y+
0740 9508 RET
fdiv10:
0741 2422 CLR R2
0742 2433 CLR R3
0743 E2B0 LDI R27,0x20
0744 2E4B MOV R4,R27
0745 E491 LDI R25,0x41
FDIV:
0746 2399 TST R25
0747 F129 BEQ 0x076D
0748 2333 TST R19
0749 F151 BEQ 0x0774
074A 940E082C CALL unpack
074C F139 BEQ 0x0774
074D 278A EOR R24,R26
074E 9408 BSET 0
074F 0B39 SBC R19,R25
0750 F0EB BVS 0x076E
0751 9446 LSR R4
0752 9437 ROR R3
0753 9427 ROR R2
0754 9526 LSR R18
0755 9517 ROR R17
0756 9507 ROR R16
0757 DFCD RCALL 0x0725
0758 2322 TST R18
0759 F02A BMI 0x075F
075A 0F00 LSL R16
075B 1F11 ROL R17
075C 1F22 ROL R18
075D 5031 SUBI R19,1
075E F07B BVS 0x076E
075F 2FB0 MOV R27,R16
0760 95B6 LSR R27
0761 F048 BCS 0x076B
0762 2300 TST R16
0763 F43A BPL 0x076B
0764 2311 TST R17
0765 F42A BPL 0x076B
0766 E0B1 LDI R27,1
0767 0F0B ADD R16,R27
0768 27BB CLR R27
0769 1F1B ADC R17,R27
076A 1F2B ADC R18,R27
076B 940C083E JMP repack
076D C006 RJMP 0x0774
076E E7BF LDI R27,0x7F
076F 2F3B MOV R19,R27
0770 2B2B OR R18,R27
0771 EF0F LDI R16,0xFF
0772 EF1F LDI R17,0xFF
0773 9508 RET
0774 2700 CLR R16
0775 2711 CLR R17
0776 2722 CLR R18
0777 2733 CLR R19
0778 2788 CLR R24
0779 9508 RET
cmp32f:
077A 940E06B9 CALL float_prolog
077C D002 RCALL FLTCP
077D 940C06B2 JMP float_epilog
FLTCP:
077F D002 RCALL 0x0782
0780 23BB TST R27
0781 9508 RET
0782 2333 TST R19
0783 F082 BMI 0x0794
0784 2399 TST R25
0785 F042 BMI 0x078E
0786 1739 CP R19,R25
0787 F040 BCS 0x0790
0788 F429 BNE 0x078E
0789 1502 CP R16,R2
078A 0513 CPC R17,R3
078B 0524 CPC R18,R4
078C F018 BCS 0x0790
078D F021 BEQ 0x0792
078E E0B1 LDI R27,1
078F 9508 RET
0790 EFBF LDI R27,0xFF
0791 9508 RET
0792 27BB CLR R27
0793 9508 RET
0794 2399 TST R25
0795 F7D2 BPL 0x0790
0796 1739 CP R19,R25
0797 F3B0 BCS 0x078E
0798 F7B9 BNE 0x0790
0799 1502 CP R16,R2
079A 0513 CPC R17,R3
079B 0524 CPC R18,R4
079C F388 BCS 0x078E
079D F3A1 BEQ 0x0792
079E CFF1 RJMP 0x0790
079F E7BF LDI R27,0x7F
07A0 2F3B MOV R19,R27
07A1 2B2B OR R18,R27
07A2 EF0F LDI R16,0xFF
07A3 EF1F LDI R17,0xFF
07A4 9508 RET
07A5 2700 CLR R16
07A6 2711 CLR R17
07A7 2722 CLR R18
07A8 2733 CLR R19
07A9 2788 CLR R24
07AA 9508 RET
empy32fs:
07AB D002 RCALL empy32f
07AC 940C0593 JMP push_arg4
empy32f:
07AE 940E06B9 CALL float_prolog
07B0 920F PUSH R0
07B1 92CF PUSH R12
07B2 D004 RCALL eFMUL
07B3 90CF POP R12
07B4 900F POP R0
07B5 940C06B2 JMP float_epilog
eFMUL:
07B7 940E082C CALL unpack
07B9 F359 BEQ 0x07A5
07BA 3890 CPI R25,0x80
07BB F349 BEQ 0x07A5
07BC 278A EOR R24,R26
07BD 9408 BSET 0
07BE 1F39 ADC R19,R25
07BF F2FB BVS 0x079F
07C0 D00E RCALL eumul24
07C1 2D2F MOV R18,R15
07C2 2D1E MOV R17,R14
07C3 2D0D MOV R16,R13
07C4 2322 TST R18
07C5 F02A BMI 0x07CB
07C6 953A DEC R19
07C7 0CCC LSL R12
07C8 1F00 ROL R16
07C9 1F11 ROL R17
07CA 1F22 ROL R18
07CB 5F3F SUBI R19,0xFF
07CC F293 BVS 0x079F
07CD 940C083E JMP repack
eumul24:
07CF 9D22 MUL R18,R2
07D0 2CC0 MOV R12,R0
07D1 2CD1 MOV R13,R1
07D2 9D24 MUL R18,R4
07D3 2CE0 MOV R14,R0
07D4 2CF1 MOV R15,R1
07D5 9D12 MUL R17,R2
07D6 0CC1 ADD R12,R1
07D7 1EDB ADC R13,R27
07D8 1EEB ADC R14,R27
07D9 1EFB ADC R15,R27
07DA 9D03 MUL R16,R3
07DB 0CC1 ADD R12,R1
07DC 1EDB ADC R13,R27
07DD 1EEB ADC R14,R27
07DE 1EFB ADC R15,R27
07DF 9D13 MUL R17,R3
07E0 0CC0 ADD R12,R0
07E1 1CD1 ADC R13,R1
07E2 1EEB ADC R14,R27
07E3 1EFB ADC R15,R27
07E4 9D04 MUL R16,R4
07E5 0CC0 ADD R12,R0
07E6 1CD1 ADC R13,R1
07E7 1EEB ADC R14,R27
07E8 1EFB ADC R15,R27
07E9 9D23 MUL R18,R3
07EA 0CD0 ADD R13,R0
07EB 1CE1 ADC R14,R1
07EC 1EFB ADC R15,R27
07ED 9D14 MUL R17,R4
07EE 0CD0 ADD R13,R0
07EF 1CE1 ADC R14,R1
07F0 1EFB ADC R15,R27
07F1 20CC TST R12
07F2 F422 BPL 0x07F7
07F3 9488 BCLR 0
07F4 1EDB ADC R13,R27
07F5 1EEB ADC R14,R27
07F6 1EFB ADC R15,R27
07F7 9508 RET
savfacc1:
07F8 938A ST R24,-Y
07F9 93BA ST R27,-Y
07FA 9508 RET
restorefacc1:
07FB 91B9 LD R27,Y+
07FC 9189 LD R24,Y+
07FD 9508 RET
unpackfacc1:
07FE 2F83 MOV R24,R19
07FF 7880 ANDI R24,0x80
0800 0F22 LSL R18
0801 1F33 ROL R19
0802 5830 SUBI R19,0x80
0803 9408 BSET 0
0804 9527 ROR R18
0805 3830 CPI R19,0x80
0806 9508 RET
negmant:
0807 9510 COM R17
0808 9520 COM R18
0809 9501 NEG R16
080A 4F1F SBCI R17,0xFF
080B 4F2F SBCI R18,0xFF
080C 9508 RET
maxres:
080D E7BF LDI R27,0x7F
080E 2F3B MOV R19,R27
080F 2B2B OR R18,R27
0810 EFBF LDI R27,0xFF
0811 2F0B MOV R16,R27
0812 2F1B MOV R17,R27
0813 9508 RET
minres:
0814 2700 CLR R16
0815 2711 CLR R17
0816 2722 CLR R18
0817 2733 CLR R19
0818 2788 CLR R24
0819 9508 RET
ac1toac2:
081A 2F93 MOV R25,R19
081B 2E20 MOV R2,R16
081C 2E31 MOV R3,R17
081D 2E42 MOV R4,R18
081E 2FA8 MOV R26,R24
081F 9508 RET
swapacc:
0820 922A ST R2,-Y
0821 923A ST R3,-Y
0822 924A ST R4,-Y
0823 939A ST R25,-Y
0824 93AA ST R26,-Y
0825 DFF4 RCALL ac1toac2
0826 9189 LD R24,Y+
0827 9139 LD R19,Y+
0828 9129 LD R18,Y+
0829 9119 LD R17,Y+
082A 9109 LD R16,Y+
082B 9508 RET
unpack:
082C 2F83 MOV R24,R19
082D E8B0 LDI R27,0x80
082E 0F22 LSL R18
082F 1F33 ROL R19
0830 273B EOR R19,R27
0831 0FBB LSL R27
0832 9527 ROR R18
0833 7880 ANDI R24,0x80
0834 2FA9 MOV R26,R25
0835 E8B0 LDI R27,0x80
0836 0C44 LSL R4
0837 1F99 ROL R25
0838 279B EOR R25,R27
0839 0FBB LSL R27
083A 9447 ROR R4
083B 78A0 ANDI R26,0x80
083C 3830 CPI R19,0x80
083D 9508 RET
repack:
083E 0F22 LSL R18
083F E8B0 LDI R27,0x80
0840 27B3 EOR R27,R19
0841 0F88 LSL R24
0842 95B7 ROR R27
0843 9527 ROR R18
0844 2F3B MOV R19,R27
0845 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -