📄 adc.lst
字号:
04DF 92EA ST R14,-Y
04E0 92FA ST R15,-Y
04E1 938A ST R24,-Y
04E2 922A ST R2,-Y
04E3 923A ST R3,-Y
04E4 924A ST R4,-Y
04E5 939A ST R25,-Y
04E6 93AA ST R26,-Y
04E7 93BA ST R27,-Y
04E8 9508 RET
restore_floatregs:
04E9 91B9 LD R27,Y+
04EA 91A9 LD R26,Y+
04EB 9199 LD R25,Y+
04EC 9049 LD R4,Y+
04ED 9039 LD R3,Y+
04EE 9029 LD R2,Y+
04EF 9189 LD R24,Y+
04F0 90F9 LD R15,Y+
04F1 90E9 LD R14,Y+
04F2 90D9 LD R13,Y+
04F3 9508 RET
stk2arg1:
04F4 842A LDD R2,Y+10
04F5 843B LDD R3,Y+11
04F6 844C LDD R4,Y+12
04F7 859D LDD R25,Y+13
04F8 9508 RET
stk2arg0:
04F9 850E LDD R16,Y+14
04FA 851F LDD R17,Y+15
04FB 8928 LDD R18,Y+16
04FC 8939 LDD R19,Y+17
04FD 9508 RET
float_epilog:
04FE DFEA RCALL restore_floatregs
04FF 920F PUSH R0
0500 B60F IN R0,0x3F
0501 9628 ADIW R28,0x8
0502 BE0F OUT 0x3F,R0
0503 900F POP R0
0504 9508 RET
float_prolog:
0505 DFD8 RCALL save_floatregs
0506 DFF2 RCALL stk2arg0
0507 CFEC RJMP stk2arg1
add32fs:
0508 D002 RCALL add32f
0509 940C0406 JMP push_arg4
add32f:
050B 940E0505 CALL float_prolog
050D D012 RCALL FADD
050E 940C04FE JMP float_epilog
sub32fs:
0510 D002 RCALL sub32f
0511 940C0406 JMP push_arg4
sub32f:
0513 940E0505 CALL float_prolog
0515 D009 RCALL FSUB
0516 940C04FE JMP float_epilog
fret2:
0518 2F8A MOV R24,R26
0519 2F39 MOV R19,R25
051A 2D24 MOV R18,R4
051B 2D13 MOV R17,R3
051C 2D02 MOV R16,R2
051D 940C068A JMP repack
FSUB:
051F 5890 SUBI R25,0x80
FADD:
0520 940E0678 CALL unpack
0522 3890 CPI R25,0x80
0523 F3C9 BEQ 0x051D
0524 3830 CPI R19,0x80
0525 F391 BEQ 0x0518
0526 2FB3 MOV R27,R19
0527 1BB9 SUB R27,R25
0528 F3A3 BVS 0x051D
0529 F02A BMI 0x052F
052A F439 BNE 0x0532
052B 1502 CP R16,R2
052C 0513 CPC R17,R3
052D 0524 CPC R18,R4
052E F418 BCC 0x0532
052F 940E066C CALL swapacc
0531 CFF4 RJMP 0x0526
0532 31B8 CPI R27,0x18
0533 F018 BCS 0x0537
0534 2422 CLR R2
0535 2433 CLR R3
0536 2444 CLR R4
0537 30B8 CPI R27,0x8
0538 F028 BCS 0x053E
0539 2C23 MOV R2,R3
053A 2C34 MOV R3,R4
053B 2444 CLR R4
053C 50B8 SUBI R27,0x8
053D CFF9 RJMP 0x0537
053E 23BB TST R27
053F F029 BEQ 0x0545
0540 9446 LSR R4
0541 9437 ROR R3
0542 9427 ROR R2
0543 95BA DEC R27
0544 F7D9 BNE 0x0540
0545 2FB8 MOV R27,R24
0546 27BA EOR R27,R26
0547 F04A BMI 0x0551
0548 D018 RCALL 0x0561
0549 F698 BCC 0x051D
054A 9527 ROR R18
054B 9517 ROR R17
054C 9507 ROR R16
054D 5F3F SUBI R19,0xFF
054E F673 BVC 0x051D
054F 940C0659 JMP maxres
0551 D013 RCALL usub24
0552 F411 BNE 0x0555
0553 940C0660 JMP minres
0555 F410 BCC 0x0558
0556 940E0653 CALL negmant
0558 2322 TST R18
0559 F21A BMI 0x051D
055A 0F00 LSL R16
055B 1F11 ROL R17
055C 1F22 ROL R18
055D 5031 SUBI R19,1
055E F7CB BVC 0x0558
055F 940C0659 JMP maxres
0561 0D02 ADD R16,R2
0562 1D13 ADC R17,R3
0563 1D24 ADC R18,R4
0564 9508 RET
usub24:
0565 1902 SUB R16,R2
0566 0913 SBC R17,R3
0567 0924 SBC R18,R4
0568 9508 RET
div32fs:
0569 D002 RCALL div32f
056A 940C0406 JMP push_arg4
div32f:
056C 940E0505 CALL float_prolog
056E D023 RCALL FDIV
056F 940C04FE JMP float_epilog
0571 93BA ST R27,-Y
0572 24DD CLR R13
0573 24EE CLR R14
0574 24FF CLR R15
0575 E1B8 LDI R27,0x18
0576 1502 CP R16,R2
0577 0513 CPC R17,R3
0578 0524 CPC R18,R4
0579 F028 BCS 0x057F
057A 1902 SUB R16,R2
057B 0913 SBC R17,R3
057C 0924 SBC R18,R4
057D 9408 BSET 0
057E C001 RJMP 0x0580
057F 9488 BCLR 0
0580 1CDD ROL R13
0581 1CEE ROL R14
0582 1CFF ROL R15
0583 0F00 LSL R16
0584 1F11 ROL R17
0585 1F22 ROL R18
0586 95BA DEC R27
0587 F771 BNE 0x0576
0588 2D0D MOV R16,R13
0589 2D1E MOV R17,R14
058A 2D2F MOV R18,R15
058B 91B9 LD R27,Y+
058C 9508 RET
fdiv10:
058D 2422 CLR R2
058E 2433 CLR R3
058F E2B0 LDI R27,0x20
0590 2E4B MOV R4,R27
0591 E491 LDI R25,0x41
FDIV:
0592 2399 TST R25
0593 F129 BEQ 0x05B9
0594 2333 TST R19
0595 F151 BEQ 0x05C0
0596 940E0678 CALL unpack
0598 F139 BEQ 0x05C0
0599 278A EOR R24,R26
059A 9408 BSET 0
059B 0B39 SBC R19,R25
059C F0EB BVS 0x05BA
059D 9446 LSR R4
059E 9437 ROR R3
059F 9427 ROR R2
05A0 9526 LSR R18
05A1 9517 ROR R17
05A2 9507 ROR R16
05A3 DFCD RCALL 0x0571
05A4 2322 TST R18
05A5 F02A BMI 0x05AB
05A6 0F00 LSL R16
05A7 1F11 ROL R17
05A8 1F22 ROL R18
05A9 5031 SUBI R19,1
05AA F07B BVS 0x05BA
05AB 2FB0 MOV R27,R16
05AC 95B6 LSR R27
05AD F048 BCS 0x05B7
05AE 2300 TST R16
05AF F43A BPL 0x05B7
05B0 2311 TST R17
05B1 F42A BPL 0x05B7
05B2 E0B1 LDI R27,1
05B3 0F0B ADD R16,R27
05B4 27BB CLR R27
05B5 1F1B ADC R17,R27
05B6 1F2B ADC R18,R27
05B7 940C068A JMP repack
05B9 C006 RJMP 0x05C0
05BA E7BF LDI R27,0x7F
05BB 2F3B MOV R19,R27
05BC 2B2B OR R18,R27
05BD EF0F LDI R16,0xFF
05BE EF1F LDI R17,0xFF
05BF 9508 RET
05C0 2700 CLR R16
05C1 2711 CLR R17
05C2 2722 CLR R18
05C3 2733 CLR R19
05C4 2788 CLR R24
05C5 9508 RET
cmp32f:
05C6 940E0505 CALL float_prolog
05C8 D002 RCALL FLTCP
05C9 940C04FE JMP float_epilog
FLTCP:
05CB D002 RCALL 0x05CE
05CC 23BB TST R27
05CD 9508 RET
05CE 2333 TST R19
05CF F082 BMI 0x05E0
05D0 2399 TST R25
05D1 F042 BMI 0x05DA
05D2 1739 CP R19,R25
05D3 F040 BCS 0x05DC
05D4 F429 BNE 0x05DA
05D5 1502 CP R16,R2
05D6 0513 CPC R17,R3
05D7 0524 CPC R18,R4
05D8 F018 BCS 0x05DC
05D9 F021 BEQ 0x05DE
05DA E0B1 LDI R27,1
05DB 9508 RET
05DC EFBF LDI R27,0xFF
05DD 9508 RET
05DE 27BB CLR R27
05DF 9508 RET
05E0 2399 TST R25
05E1 F7D2 BPL 0x05DC
05E2 1739 CP R19,R25
05E3 F3B0 BCS 0x05DA
05E4 F7B9 BNE 0x05DC
05E5 1502 CP R16,R2
05E6 0513 CPC R17,R3
05E7 0524 CPC R18,R4
05E8 F388 BCS 0x05DA
05E9 F3A1 BEQ 0x05DE
05EA CFF1 RJMP 0x05DC
05EB E7BF LDI R27,0x7F
05EC 2F3B MOV R19,R27
05ED 2B2B OR R18,R27
05EE EF0F LDI R16,0xFF
05EF EF1F LDI R17,0xFF
05F0 9508 RET
05F1 2700 CLR R16
05F2 2711 CLR R17
05F3 2722 CLR R18
05F4 2733 CLR R19
05F5 2788 CLR R24
05F6 9508 RET
empy32fs:
05F7 D002 RCALL empy32f
05F8 940C0406 JMP push_arg4
empy32f:
05FA 940E0505 CALL float_prolog
05FC 920F PUSH R0
05FD 92CF PUSH R12
05FE D004 RCALL eFMUL
05FF 90CF POP R12
0600 900F POP R0
0601 940C04FE JMP float_epilog
eFMUL:
0603 940E0678 CALL unpack
0605 F359 BEQ 0x05F1
0606 3890 CPI R25,0x80
0607 F349 BEQ 0x05F1
0608 278A EOR R24,R26
0609 9408 BSET 0
060A 1F39 ADC R19,R25
060B F2FB BVS 0x05EB
060C D00E RCALL eumul24
060D 2D2F MOV R18,R15
060E 2D1E MOV R17,R14
060F 2D0D MOV R16,R13
0610 2322 TST R18
0611 F02A BMI 0x0617
0612 953A DEC R19
0613 0CCC LSL R12
0614 1F00 ROL R16
0615 1F11 ROL R17
0616 1F22 ROL R18
0617 5F3F SUBI R19,0xFF
0618 F293 BVS 0x05EB
0619 940C068A JMP repack
eumul24:
061B 9D22 MUL R18,R2
061C 2CC0 MOV R12,R0
061D 2CD1 MOV R13,R1
061E 9D24 MUL R18,R4
061F 2CE0 MOV R14,R0
0620 2CF1 MOV R15,R1
0621 9D12 MUL R17,R2
0622 0CC1 ADD R12,R1
0623 1EDB ADC R13,R27
0624 1EEB ADC R14,R27
0625 1EFB ADC R15,R27
0626 9D03 MUL R16,R3
0627 0CC1 ADD R12,R1
0628 1EDB ADC R13,R27
0629 1EEB ADC R14,R27
062A 1EFB ADC R15,R27
062B 9D13 MUL R17,R3
062C 0CC0 ADD R12,R0
062D 1CD1 ADC R13,R1
062E 1EEB ADC R14,R27
062F 1EFB ADC R15,R27
0630 9D04 MUL R16,R4
0631 0CC0 ADD R12,R0
0632 1CD1 ADC R13,R1
0633 1EEB ADC R14,R27
0634 1EFB ADC R15,R27
0635 9D23 MUL R18,R3
0636 0CD0 ADD R13,R0
0637 1CE1 ADC R14,R1
0638 1EFB ADC R15,R27
0639 9D14 MUL R17,R4
063A 0CD0 ADD R13,R0
063B 1CE1 ADC R14,R1
063C 1EFB ADC R15,R27
063D 20CC TST R12
063E F422 BPL 0x0643
063F 9488 BCLR 0
0640 1EDB ADC R13,R27
0641 1EEB ADC R14,R27
0642 1EFB ADC R15,R27
0643 9508 RET
savfacc1:
0644 938A ST R24,-Y
0645 93BA ST R27,-Y
0646 9508 RET
restorefacc1:
0647 91B9 LD R27,Y+
0648 9189 LD R24,Y+
0649 9508 RET
unpackfacc1:
064A 2F83 MOV R24,R19
064B 7880 ANDI R24,0x80
064C 0F22 LSL R18
064D 1F33 ROL R19
064E 5830 SUBI R19,0x80
064F 9408 BSET 0
0650 9527 ROR R18
0651 3830 CPI R19,0x80
0652 9508 RET
negmant:
0653 9510 COM R17
0654 9520 COM R18
0655 9501 NEG R16
0656 4F1F SBCI R17,0xFF
0657 4F2F SBCI R18,0xFF
0658 9508 RET
maxres:
0659 E7BF LDI R27,0x7F
065A 2F3B MOV R19,R27
065B 2B2B OR R18,R27
065C EFBF LDI R27,0xFF
065D 2F0B MOV R16,R27
065E 2F1B MOV R17,R27
065F 9508 RET
minres:
0660 2700 CLR R16
0661 2711 CLR R17
0662 2722 CLR R18
0663 2733 CLR R19
0664 2788 CLR R24
0665 9508 RET
ac1toac2:
0666 2F93 MOV R25,R19
0667 2E20 MOV R2,R16
0668 2E31 MOV R3,R17
0669 2E42 MOV R4,R18
066A 2FA8 MOV R26,R24
066B 9508 RET
swapacc:
066C 922A ST R2,-Y
066D 923A ST R3,-Y
066E 924A ST R4,-Y
066F 939A ST R25,-Y
0670 93AA ST R26,-Y
0671 DFF4 RCALL ac1toac2
0672 9189 LD R24,Y+
0673 9139 LD R19,Y+
0674 9129 LD R18,Y+
0675 9119 LD R17,Y+
0676 9109 LD R16,Y+
0677 9508 RET
unpack:
0678 2F83 MOV R24,R19
0679 E8B0 LDI R27,0x80
067A 0F22 LSL R18
067B 1F33 ROL R19
067C 273B EOR R19,R27
067D 0FBB LSL R27
067E 9527 ROR R18
067F 7880 ANDI R24,0x80
0680 2FA9 MOV R26,R25
0681 E8B0 LDI R27,0x80
0682 0C44 LSL R4
0683 1F99 ROL R25
0684 279B EOR R25,R27
0685 0FBB LSL R27
0686 9447 ROR R4
0687 78A0 ANDI R26,0x80
0688 3830 CPI R19,0x80
0689 9508 RET
repack:
068A 0F22 LSL R18
068B E8B0 LDI R27,0x80
068C 27B3 EOR R27,R19
068D 0F88 LSL R24
068E 95B7 ROR R27
068F 9527 ROR R18
0690 2F3B MOV R19,R27
0691 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -