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