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