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