📄 ultrawave.lst
字号:
05A2 E010 LDI R17,0
05A3 EA0A LDI R16,0xAA
05A4 940C0568 JMP lpm32
05A6 E010 LDI R17,0
05A7 EA08 LDI R16,0xA8
05A8 940C0568 JMP lpm32
05AA 9533 INC R19
05AB F3D2 BMI 0x05A6
05AC E030 LDI R19,0
05AD 50B8 SUBI R27,0x8
05AE F452 BPL 0x05B9
05AF 5FB8 SUBI R27,0xF8
05B0 2F32 MOV R19,R18
05B1 2F21 MOV R18,R17
05B2 2F10 MOV R17,R16
05B3 E800 LDI R16,0x80
05B4 C006 RJMP 0x05BB
05B5 2F01 MOV R16,R17
05B6 2F12 MOV R17,R18
05B7 E020 LDI R18,0
05B8 50B8 SUBI R27,0x8
05B9 30B8 CPI R27,0x8
05BA F7D0 BCC 0x05B5
05BB 23BB TST R27
05BC F031 BEQ 0x05C3
05BD 9536 LSR R19
05BE 9527 ROR R18
05BF 9517 ROR R17
05C0 9507 ROR R16
05C1 95BA DEC R27
05C2 F7D1 BNE 0x05BD
05C3 9508 RET
int2fp:
05C4 2722 CLR R18
05C5 FD17 SBRC R17,7
05C6 9520 COM R18
05C7 2733 CLR R19
05C8 FD27 SBRC R18,7
05C9 9530 COM R19
long2fp:
05CA 940E0709 CALL savfacc1
05CC D002 RCALL ITOF
05CD 940C070C JMP restorefacc1
ITOF:
05CF 2788 CLR R24
05D0 2333 TST R19
05D1 F41A BPL 0x05D5
05D2 940E055F CALL neg32
05D4 9580 COM R24
05D5 2FB0 MOV R27,R16
05D6 2BB1 OR R27,R17
05D7 2BB2 OR R27,R18
05D8 2BB3 OR R27,R19
05D9 F411 BNE 0x05DC
05DA 940C0725 JMP minres
05DC E1B6 LDI R27,0x16
05DD C005 RJMP itof2
05DE 95B3 INC R27
05DF 9536 LSR R19
05E0 9527 ROR R18
05E1 9517 ROR R17
05E2 9507 ROR R16
itof2:
05E3 2333 TST R19
05E4 F7C9 BNE 0x05DE
itof3:
05E5 2322 TST R18
05E6 F449 BNE 0x05F0
05E7 50B8 SUBI R27,0x8
05E8 2F21 MOV R18,R17
05E9 2F10 MOV R17,R16
05EA E000 LDI R16,0
05EB CFF9 RJMP itof3
05EC 95BA DEC R27
05ED 0F00 LSL R16
05EE 1F11 ROL R17
05EF 1F22 ROL R18
05F0 F7DA BPL 0x05EC
05F1 2F3B MOV R19,R27
05F2 940C074F JMP repack
save_floatregs:
05F4 92DA ST R13,-Y
05F5 92EA ST R14,-Y
05F6 92FA ST R15,-Y
05F7 938A ST R24,-Y
05F8 922A ST R2,-Y
05F9 923A ST R3,-Y
05FA 924A ST R4,-Y
05FB 939A ST R25,-Y
05FC 93AA ST R26,-Y
05FD 93BA ST R27,-Y
05FE 9508 RET
restore_floatregs:
05FF 91B9 LD R27,Y+
0600 91A9 LD R26,Y+
0601 9199 LD R25,Y+
0602 9049 LD R4,Y+
0603 9039 LD R3,Y+
0604 9029 LD R2,Y+
0605 9189 LD R24,Y+
0606 90F9 LD R15,Y+
0607 90E9 LD R14,Y+
0608 90D9 LD R13,Y+
0609 9508 RET
stk2arg1:
060A 842A LDD R2,Y+10
060B 843B LDD R3,Y+11
060C 844C LDD R4,Y+12
060D 859D LDD R25,Y+13
060E 9508 RET
stk2arg0:
060F 850E LDD R16,Y+14
0610 851F LDD R17,Y+15
0611 8928 LDD R18,Y+16
0612 8939 LDD R19,Y+17
0613 9508 RET
float_epilog:
0614 DFEA RCALL restore_floatregs
0615 920F PUSH R0
0616 B60F IN R0,0x3F
0617 9628 ADIW R28,0x8
0618 BE0F OUT 0x3F,R0
0619 900F POP R0
061A 9508 RET
float_prolog:
061B DFD8 RCALL save_floatregs
061C DFF2 RCALL stk2arg0
061D CFEC RJMP stk2arg1
add32fs:
061E D002 RCALL add32f
061F 940C04BE JMP push_arg4
add32f:
0621 940E061B CALL float_prolog
0623 D012 RCALL FADD
0624 940C0614 JMP float_epilog
sub32fs:
0626 D002 RCALL sub32f
0627 940C04BE JMP push_arg4
sub32f:
0629 940E061B CALL float_prolog
062B D009 RCALL FSUB
062C 940C0614 JMP float_epilog
fret2:
062E 2F8A MOV R24,R26
062F 2F39 MOV R19,R25
0630 2D24 MOV R18,R4
0631 2D13 MOV R17,R3
0632 2D02 MOV R16,R2
0633 940C074F JMP repack
FSUB:
0635 5890 SUBI R25,0x80
FADD:
0636 940E073D CALL unpack
0638 3890 CPI R25,0x80
0639 F3C9 BEQ 0x0633
063A 3830 CPI R19,0x80
063B F391 BEQ 0x062E
063C 2FB3 MOV R27,R19
063D 1BB9 SUB R27,R25
063E F3A3 BVS 0x0633
063F F02A BMI 0x0645
0640 F439 BNE 0x0648
0641 1502 CP R16,R2
0642 0513 CPC R17,R3
0643 0524 CPC R18,R4
0644 F418 BCC 0x0648
0645 940E0731 CALL swapacc
0647 CFF4 RJMP 0x063C
0648 31B8 CPI R27,0x18
0649 F018 BCS 0x064D
064A 2422 CLR R2
064B 2433 CLR R3
064C 2444 CLR R4
064D 30B8 CPI R27,0x8
064E F028 BCS 0x0654
064F 2C23 MOV R2,R3
0650 2C34 MOV R3,R4
0651 2444 CLR R4
0652 50B8 SUBI R27,0x8
0653 CFF9 RJMP 0x064D
0654 23BB TST R27
0655 F029 BEQ 0x065B
0656 9446 LSR R4
0657 9437 ROR R3
0658 9427 ROR R2
0659 95BA DEC R27
065A F7D9 BNE 0x0656
065B 2FB8 MOV R27,R24
065C 27BA EOR R27,R26
065D F04A BMI 0x0667
065E D018 RCALL 0x0677
065F F698 BCC 0x0633
0660 9527 ROR R18
0661 9517 ROR R17
0662 9507 ROR R16
0663 5F3F SUBI R19,0xFF
0664 F673 BVC 0x0633
0665 940C071E JMP maxres
0667 D013 RCALL usub24
0668 F411 BNE 0x066B
0669 940C0725 JMP minres
066B F410 BCC 0x066E
066C 940E0718 CALL negmant
066E 2322 TST R18
066F F21A BMI 0x0633
0670 0F00 LSL R16
0671 1F11 ROL R17
0672 1F22 ROL R18
0673 5031 SUBI R19,1
0674 F7CB BVC 0x066E
0675 940C071E JMP maxres
0677 0D02 ADD R16,R2
0678 1D13 ADC R17,R3
0679 1D24 ADC R18,R4
067A 9508 RET
usub24:
067B 1902 SUB R16,R2
067C 0913 SBC R17,R3
067D 0924 SBC R18,R4
067E 9508 RET
cmp32f:
067F 940E061B CALL float_prolog
0681 D002 RCALL FLTCP
0682 940C0614 JMP float_epilog
FLTCP:
0684 D002 RCALL 0x0687
0685 23BB TST R27
0686 9508 RET
0687 2333 TST R19
0688 F082 BMI 0x0699
0689 2399 TST R25
068A F042 BMI 0x0693
068B 1739 CP R19,R25
068C F040 BCS 0x0695
068D F429 BNE 0x0693
068E 1502 CP R16,R2
068F 0513 CPC R17,R3
0690 0524 CPC R18,R4
0691 F018 BCS 0x0695
0692 F021 BEQ 0x0697
0693 E0B1 LDI R27,1
0694 9508 RET
0695 EFBF LDI R27,0xFF
0696 9508 RET
0697 27BB CLR R27
0698 9508 RET
0699 2399 TST R25
069A F7D2 BPL 0x0695
069B 1739 CP R19,R25
069C F3B0 BCS 0x0693
069D F7B9 BNE 0x0695
069E 1502 CP R16,R2
069F 0513 CPC R17,R3
06A0 0524 CPC R18,R4
06A1 F388 BCS 0x0693
06A2 F3A1 BEQ 0x0697
06A3 CFF1 RJMP 0x0695
06A4 E7BF LDI R27,0x7F
06A5 2F3B MOV R19,R27
06A6 2B2B OR R18,R27
06A7 EF0F LDI R16,0xFF
06A8 EF1F LDI R17,0xFF
06A9 9508 RET
06AA 2700 CLR R16
06AB 2711 CLR R17
06AC 2722 CLR R18
06AD 2733 CLR R19
06AE 2788 CLR R24
06AF 9508 RET
empy32fs:
06B0 D002 RCALL empy32f
06B1 940C04BE JMP push_arg4
empy32f:
06B3 940E061B CALL float_prolog
06B5 920F PUSH R0
06B6 92CF PUSH R12
06B7 D004 RCALL eFMUL
06B8 90CF POP R12
06B9 900F POP R0
06BA 940C0614 JMP float_epilog
eFMUL:
06BC 940E073D CALL unpack
06BE F359 BEQ 0x06AA
06BF 3890 CPI R25,0x80
06C0 F349 BEQ 0x06AA
06C1 278A EOR R24,R26
06C2 9408 BSET 0
06C3 1F39 ADC R19,R25
06C4 F2FB BVS 0x06A4
06C5 D00E RCALL eumul24
06C6 2D2F MOV R18,R15
06C7 2D1E MOV R17,R14
06C8 2D0D MOV R16,R13
06C9 2322 TST R18
06CA F02A BMI 0x06D0
06CB 953A DEC R19
06CC 0CCC LSL R12
06CD 1F00 ROL R16
06CE 1F11 ROL R17
06CF 1F22 ROL R18
06D0 5F3F SUBI R19,0xFF
06D1 F293 BVS 0x06A4
06D2 940C074F JMP repack
eumul24:
06D4 9D22 MUL R18,R2
06D5 2CC0 MOV R12,R0
06D6 2CD1 MOV R13,R1
06D7 9D24 MUL R18,R4
06D8 2CE0 MOV R14,R0
06D9 2CF1 MOV R15,R1
06DA 9D12 MUL R17,R2
06DB 0CC1 ADD R12,R1
06DC 1EDB ADC R13,R27
06DD 1EEB ADC R14,R27
06DE 1EFB ADC R15,R27
06DF 9D03 MUL R16,R3
06E0 0CC1 ADD R12,R1
06E1 1EDB ADC R13,R27
06E2 1EEB ADC R14,R27
06E3 1EFB ADC R15,R27
06E4 9D13 MUL R17,R3
06E5 0CC0 ADD R12,R0
06E6 1CD1 ADC R13,R1
06E7 1EEB ADC R14,R27
06E8 1EFB ADC R15,R27
06E9 9D04 MUL R16,R4
06EA 0CC0 ADD R12,R0
06EB 1CD1 ADC R13,R1
06EC 1EEB ADC R14,R27
06ED 1EFB ADC R15,R27
06EE 9D23 MUL R18,R3
06EF 0CD0 ADD R13,R0
06F0 1CE1 ADC R14,R1
06F1 1EFB ADC R15,R27
06F2 9D14 MUL R17,R4
06F3 0CD0 ADD R13,R0
06F4 1CE1 ADC R14,R1
06F5 1EFB ADC R15,R27
06F6 20CC TST R12
06F7 F422 BPL 0x06FC
06F8 9488 BCLR 0
06F9 1EDB ADC R13,R27
06FA 1EEB ADC R14,R27
06FB 1EFB ADC R15,R27
06FC 9508 RET
neg32fs:
06FD D002 RCALL neg32f
06FE 940C04BE JMP push_arg4
neg32f:
0700 93BF PUSH R27
0701 9109 LD R16,Y+
0702 9119 LD R17,Y+
0703 9129 LD R18,Y+
0704 9139 LD R19,Y+
0705 E8B0 LDI R27,0x80
0706 273B EOR R19,R27
0707 91BF POP R27
0708 9508 RET
savfacc1:
0709 938A ST R24,-Y
070A 93BA ST R27,-Y
070B 9508 RET
restorefacc1:
070C 91B9 LD R27,Y+
070D 9189 LD R24,Y+
070E 9508 RET
unpackfacc1:
070F 2F83 MOV R24,R19
0710 7880 ANDI R24,0x80
0711 0F22 LSL R18
0712 1F33 ROL R19
0713 5830 SUBI R19,0x80
0714 9408 BSET 0
0715 9527 ROR R18
0716 3830 CPI R19,0x80
0717 9508 RET
negmant:
0718 9510 COM R17
0719 9520 COM R18
071A 9501 NEG R16
071B 4F1F SBCI R17,0xFF
071C 4F2F SBCI R18,0xFF
071D 9508 RET
maxres:
071E E7BF LDI R27,0x7F
071F 2F3B MOV R19,R27
0720 2B2B OR R18,R27
0721 EFBF LDI R27,0xFF
0722 2F0B MOV R16,R27
0723 2F1B MOV R17,R27
0724 9508 RET
minres:
0725 2700 CLR R16
0726 2711 CLR R17
0727 2722 CLR R18
0728 2733 CLR R19
0729 2788 CLR R24
072A 9508 RET
ac1toac2:
072B 2F93 MOV R25,R19
072C 2E20 MOV R2,R16
072D 2E31 MOV R3,R17
072E 2E42 MOV R4,R18
072F 2FA8 MOV R26,R24
0730 9508 RET
swapacc:
0731 922A ST R2,-Y
0732 923A ST R3,-Y
0733 924A ST R4,-Y
0734 939A ST R25,-Y
0735 93AA ST R26,-Y
0736 DFF4 RCALL ac1toac2
0737 9189 LD R24,Y+
0738 9139 LD R19,Y+
0739 9129 LD R18,Y+
073A 9119 LD R17,Y+
073B 9109 LD R16,Y+
073C 9508 RET
unpack:
073D 2F83 MOV R24,R19
073E E8B0 LDI R27,0x80
073F 0F22 LSL R18
0740 1F33 ROL R19
0741 273B EOR R19,R27
0742 0FBB LSL R27
0743 9527 ROR R18
0744 7880 ANDI R24,0x80
0745 2FA9 MOV R26,R25
0746 E8B0 LDI R27,0x80
0747 0C44 LSL R4
0748 1F99 ROL R25
0749 279B EOR R25,R27
074A 0FBB LSL R27
074B 9447 ROR R4
074C 78A0 ANDI R26,0x80
074D 3830 CPI R19,0x80
074E 9508 RET
repack:
074F 0F22 LSL R18
0750 E8B0 LDI R27,0x80
0751 27B3 EOR R27,R19
0752 0F88 LSL R24
0753 95B7 ROR R27
0754 9527 ROR R18
0755 2F3B MOV R19,R27
0756 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -