📄 car.lst
字号:
04FB 9029 LD R2,Y+
04FC 9189 LD R24,Y+
04FD 90F9 LD R15,Y+
04FE 90E9 LD R14,Y+
04FF 90D9 LD R13,Y+
0500 9508 RET
stk2arg1:
0501 842A LDD R2,Y+10
0502 843B LDD R3,Y+11
0503 844C LDD R4,Y+12
0504 859D LDD R25,Y+13
0505 9508 RET
stk2arg0:
0506 850E LDD R16,Y+14
0507 851F LDD R17,Y+15
0508 8928 LDD R18,Y+16
0509 8939 LDD R19,Y+17
050A 9508 RET
float_epilog:
050B DFEA RCALL restore_floatregs
050C 920F PUSH R0
050D B60F IN R0,0x3F
050E 9628 ADIW R28,0x8
050F BE0F OUT 0x3F,R0
0510 900F POP R0
0511 9508 RET
float_prolog:
0512 DFD8 RCALL save_floatregs
0513 DFF2 RCALL stk2arg0
0514 CFEC RJMP stk2arg1
add32fs:
0515 D001 RCALL add32f
0516 CEE1 RJMP push_arg4
add32f:
0517 DFFA RCALL float_prolog
0518 D00D RCALL FADD
0519 CFF1 RJMP float_epilog
sub32fs:
051A D001 RCALL sub32f
051B CEDC RJMP push_arg4
sub32f:
051C DFF5 RCALL float_prolog
051D D007 RCALL FSUB
051E CFEC RJMP float_epilog
fret2:
051F 2F8A MOV R24,R26
0520 2F39 MOV R19,R25
0521 2D24 MOV R18,R4
0522 2D13 MOV R17,R3
0523 2D02 MOV R16,R2
0524 C140 RJMP repack
FSUB:
0525 5890 SUBI R25,0x80
FADD:
0526 D12C RCALL unpack
0527 3890 CPI R25,0x80
0528 F3D9 BEQ 0x0524
0529 3830 CPI R19,0x80
052A F3A1 BEQ 0x051F
052B 2FB3 MOV R27,R19
052C 1BB9 SUB R27,R25
052D F3B3 BVS 0x0524
052E F02A BMI 0x0534
052F F431 BNE 0x0536
0530 1502 CP R16,R2
0531 0513 CPC R17,R3
0532 0524 CPC R18,R4
0533 F410 BCC 0x0536
0534 D112 RCALL swapacc
0535 CFF5 RJMP 0x052B
0536 31B8 CPI R27,0x18
0537 F018 BCS 0x053B
0538 2422 CLR R2
0539 2433 CLR R3
053A 2444 CLR R4
053B 30B8 CPI R27,0x8
053C F028 BCS 0x0542
053D 2C23 MOV R2,R3
053E 2C34 MOV R3,R4
053F 2444 CLR R4
0540 50B8 SUBI R27,0x8
0541 CFF9 RJMP 0x053B
0542 23BB TST R27
0543 F029 BEQ 0x0549
0544 9446 LSR R4
0545 9437 ROR R3
0546 9427 ROR R2
0547 95BA DEC R27
0548 F7D9 BNE 0x0544
0549 2FB8 MOV R27,R24
054A 27BA EOR R27,R26
054B F042 BMI 0x0554
054C D014 RCALL 0x0561
054D F6B0 BCC 0x0524
054E 9527 ROR R18
054F 9517 ROR R17
0550 9507 ROR R16
0551 5F3F SUBI R19,0xFF
0552 F68B BVC 0x0524
0553 C0E0 RJMP maxres
0554 D010 RCALL usub24
0555 F409 BNE 0x0557
0556 C0E4 RJMP minres
0557 F408 BCC 0x0559
0558 D0D5 RCALL negmant
0559 2322 TST R18
055A F24A BMI 0x0524
055B 0F00 LSL R16
055C 1F11 ROL R17
055D 1F22 ROL R18
055E 5031 SUBI R19,1
055F F7CB BVC 0x0559
0560 C0D3 RJMP 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 D001 RCALL div32f
056A CE8D RJMP push_arg4
div32f:
056B DFA6 RCALL float_prolog
056C D022 RCALL FDIV
056D CF9D RJMP float_epilog
056E 93BA ST R27,-Y
056F 24DD CLR R13
0570 24EE CLR R14
0571 24FF CLR R15
0572 E1B8 LDI R27,0x18
0573 1502 CP R16,R2
0574 0513 CPC R17,R3
0575 0524 CPC R18,R4
0576 F028 BCS 0x057C
0577 1902 SUB R16,R2
0578 0913 SBC R17,R3
0579 0924 SBC R18,R4
057A 9408 BSET 0
057B C001 RJMP 0x057D
057C 9488 BCLR 0
057D 1CDD ROL R13
057E 1CEE ROL R14
057F 1CFF ROL R15
0580 0F00 LSL R16
0581 1F11 ROL R17
0582 1F22 ROL R18
0583 95BA DEC R27
0584 F771 BNE 0x0573
0585 2D0D MOV R16,R13
0586 2D1E MOV R17,R14
0587 2D2F MOV R18,R15
0588 91B9 LD R27,Y+
0589 9508 RET
fdiv10:
058A 2422 CLR R2
058B 2433 CLR R3
058C E2B0 LDI R27,0x20
058D 2E4B MOV R4,R27
058E E491 LDI R25,0x41
FDIV:
058F 2399 TST R25
0590 F119 BEQ 0x05B4
0591 2333 TST R19
0592 F141 BEQ 0x05BB
0593 D0BF RCALL unpack
0594 F131 BEQ 0x05BB
0595 278A EOR R24,R26
0596 9408 BSET 0
0597 0B39 SBC R19,R25
0598 F0E3 BVS 0x05B5
0599 9446 LSR R4
059A 9437 ROR R3
059B 9427 ROR R2
059C 9526 LSR R18
059D 9517 ROR R17
059E 9507 ROR R16
059F DFCE RCALL 0x056E
05A0 2322 TST R18
05A1 F02A BMI 0x05A7
05A2 0F00 LSL R16
05A3 1F11 ROL R17
05A4 1F22 ROL R18
05A5 5031 SUBI R19,1
05A6 F073 BVS 0x05B5
05A7 2FB0 MOV R27,R16
05A8 95B6 LSR R27
05A9 F048 BCS 0x05B3
05AA 2300 TST R16
05AB F43A BPL 0x05B3
05AC 2311 TST R17
05AD F42A BPL 0x05B3
05AE E0B1 LDI R27,1
05AF 0F0B ADD R16,R27
05B0 27BB CLR R27
05B1 1F1B ADC R17,R27
05B2 1F2B ADC R18,R27
05B3 C0B1 RJMP repack
05B4 C006 RJMP 0x05BB
05B5 E7BF LDI R27,0x7F
05B6 2F3B MOV R19,R27
05B7 2B2B OR R18,R27
05B8 EF0F LDI R16,0xFF
05B9 EF1F LDI R17,0xFF
05BA 9508 RET
05BB 2700 CLR R16
05BC 2711 CLR R17
05BD 2722 CLR R18
05BE 2733 CLR R19
05BF 2788 CLR R24
05C0 9508 RET
cmp32f:
05C1 DF50 RCALL float_prolog
05C2 D001 RCALL FLTCP
05C3 CF47 RJMP float_epilog
FLTCP:
05C4 D002 RCALL 0x05C7
05C5 23BB TST R27
05C6 9508 RET
05C7 2333 TST R19
05C8 F082 BMI 0x05D9
05C9 2399 TST R25
05CA F042 BMI 0x05D3
05CB 1739 CP R19,R25
05CC F040 BCS 0x05D5
05CD F429 BNE 0x05D3
05CE 1502 CP R16,R2
05CF 0513 CPC R17,R3
05D0 0524 CPC R18,R4
05D1 F018 BCS 0x05D5
05D2 F021 BEQ 0x05D7
05D3 E0B1 LDI R27,1
05D4 9508 RET
05D5 EFBF LDI R27,0xFF
05D6 9508 RET
05D7 27BB CLR R27
05D8 9508 RET
05D9 2399 TST R25
05DA F7D2 BPL 0x05D5
05DB 1739 CP R19,R25
05DC F3B0 BCS 0x05D3
05DD F7B9 BNE 0x05D5
05DE 1502 CP R16,R2
05DF 0513 CPC R17,R3
05E0 0524 CPC R18,R4
05E1 F388 BCS 0x05D3
05E2 F3A1 BEQ 0x05D7
05E3 CFF1 RJMP 0x05D5
05E4 E7BF LDI R27,0x7F
05E5 2F3B MOV R19,R27
05E6 2B2B OR R18,R27
05E7 EF0F LDI R16,0xFF
05E8 EF1F LDI R17,0xFF
05E9 9508 RET
05EA 2700 CLR R16
05EB 2711 CLR R17
05EC 2722 CLR R18
05ED 2733 CLR R19
05EE 2788 CLR R24
05EF 9508 RET
mpy32fs:
05F0 D001 RCALL mpy32f
05F1 CE06 RJMP push_arg4
mpy32f:
05F2 DF1F RCALL float_prolog
05F3 D001 RCALL FMUL
05F4 CF16 RJMP float_epilog
FMUL:
05F5 D05D RCALL unpack
05F6 F399 BEQ 0x05EA
05F7 3890 CPI R25,0x80
05F8 F389 BEQ 0x05EA
05F9 278A EOR R24,R26
05FA 9408 BSET 0
05FB 1F39 ADC R19,R25
05FC F33B BVS 0x05E4
05FD D00A RCALL umul24
05FE 2322 TST R18
05FF F02A BMI 0x0605
0600 953A DEC R19
0601 0CFF LSL R15
0602 1F00 ROL R16
0603 1F11 ROL R17
0604 1F22 ROL R18
0605 5F3F SUBI R19,0xFF
0606 F2EB BVS 0x05E4
0607 C05D RJMP repack
umul24:
0608 939A ST R25,-Y
0609 24DD CLR R13
060A 24EE CLR R14
060B 24FF CLR R15
060C 27BB CLR R27
060D E198 LDI R25,0x18
060E 0CDD LSL R13
060F 1CEE ROL R14
0610 1CFF ROL R15
0611 1F00 ROL R16
0612 1F11 ROL R17
0613 1F22 ROL R18
0614 F430 BCC 0x061B
0615 0CD2 ADD R13,R2
0616 1CE3 ADC R14,R3
0617 1CF4 ADC R15,R4
0618 1F0B ADC R16,R27
0619 1F1B ADC R17,R27
061A 1F2B ADC R18,R27
061B 959A DEC R25
061C F789 BNE 0x060E
061D 9199 LD R25,Y+
061E 9508 RET
savfacc1:
061F 938A ST R24,-Y
0620 93BA ST R27,-Y
0621 9508 RET
restorefacc1:
0622 91B9 LD R27,Y+
0623 9189 LD R24,Y+
0624 9508 RET
unpackfacc1:
0625 2F83 MOV R24,R19
0626 7880 ANDI R24,0x80
0627 0F22 LSL R18
0628 1F33 ROL R19
0629 5830 SUBI R19,0x80
062A 9408 BSET 0
062B 9527 ROR R18
062C 3830 CPI R19,0x80
062D 9508 RET
negmant:
062E 9510 COM R17
062F 9520 COM R18
0630 9501 NEG R16
0631 4F1F SBCI R17,0xFF
0632 4F2F SBCI R18,0xFF
0633 9508 RET
maxres:
0634 E7BF LDI R27,0x7F
0635 2F3B MOV R19,R27
0636 2B2B OR R18,R27
0637 EFBF LDI R27,0xFF
0638 2F0B MOV R16,R27
0639 2F1B MOV R17,R27
063A 9508 RET
minres:
063B 2700 CLR R16
063C 2711 CLR R17
063D 2722 CLR R18
063E 2733 CLR R19
063F 2788 CLR R24
0640 9508 RET
ac1toac2:
0641 2F93 MOV R25,R19
0642 2E20 MOV R2,R16
0643 2E31 MOV R3,R17
0644 2E42 MOV R4,R18
0645 2FA8 MOV R26,R24
0646 9508 RET
swapacc:
0647 922A ST R2,-Y
0648 923A ST R3,-Y
0649 924A ST R4,-Y
064A 939A ST R25,-Y
064B 93AA ST R26,-Y
064C DFF4 RCALL ac1toac2
064D 9189 LD R24,Y+
064E 9139 LD R19,Y+
064F 9129 LD R18,Y+
0650 9119 LD R17,Y+
0651 9109 LD R16,Y+
0652 9508 RET
unpack:
0653 2F83 MOV R24,R19
0654 E8B0 LDI R27,0x80
0655 0F22 LSL R18
0656 1F33 ROL R19
0657 273B EOR R19,R27
0658 0FBB LSL R27
0659 9527 ROR R18
065A 7880 ANDI R24,0x80
065B 2FA9 MOV R26,R25
065C E8B0 LDI R27,0x80
065D 0C44 LSL R4
065E 1F99 ROL R25
065F 279B EOR R25,R27
0660 0FBB LSL R27
0661 9447 ROR R4
0662 78A0 ANDI R26,0x80
0663 3830 CPI R19,0x80
0664 9508 RET
repack:
0665 0F22 LSL R18
0666 E8B0 LDI R27,0x80
0667 27B3 EOR R27,R19
0668 0F88 LSL R24
0669 95B7 ROR R27
066A 9527 ROR R18
066B 2F3B MOV R19,R27
066C 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -