📄 18b20.lst
字号:
03AC 940C036E JMP lpm32
03AE E010 LDI R17,0
03AF E802 LDI R16,0x82
03B0 940C036E JMP lpm32
03B2 E010 LDI R17,0
03B3 E800 LDI R16,0x80
03B4 940C036E JMP lpm32
03B6 9533 INC R19
03B7 F3D2 BMI 0x03B2
03B8 E030 LDI R19,0
03B9 50B8 SUBI R27,0x8
03BA F452 BPL 0x03C5
03BB 5FB8 SUBI R27,0xF8
03BC 2F32 MOV R19,R18
03BD 2F21 MOV R18,R17
03BE 2F10 MOV R17,R16
03BF E800 LDI R16,0x80
03C0 C006 RJMP 0x03C7
03C1 2F01 MOV R16,R17
03C2 2F12 MOV R17,R18
03C3 E020 LDI R18,0
03C4 50B8 SUBI R27,0x8
03C5 30B8 CPI R27,0x8
03C6 F7D0 BCC 0x03C1
03C7 23BB TST R27
03C8 F031 BEQ 0x03CF
03C9 9536 LSR R19
03CA 9527 ROR R18
03CB 9517 ROR R17
03CC 9507 ROR R16
03CD 95BA DEC R27
03CE F7D1 BNE 0x03C9
03CF 9508 RET
int2fp:
03D0 2722 CLR R18
03D1 FD17 SBRC R17,7
03D2 9520 COM R18
03D3 2733 CLR R19
03D4 FD27 SBRC R18,7
03D5 9530 COM R19
long2fp:
03D6 940E0509 CALL savfacc1
03D8 D002 RCALL ITOF
03D9 940C050C JMP restorefacc1
ITOF:
03DB 2788 CLR R24
03DC 2333 TST R19
03DD F41A BPL 0x03E1
03DE 940E0365 CALL neg32
03E0 9580 COM R24
03E1 2FB0 MOV R27,R16
03E2 2BB1 OR R27,R17
03E3 2BB2 OR R27,R18
03E4 2BB3 OR R27,R19
03E5 F411 BNE 0x03E8
03E6 940C0525 JMP minres
03E8 E1B6 LDI R27,0x16
03E9 C005 RJMP itof2
03EA 95B3 INC R27
03EB 9536 LSR R19
03EC 9527 ROR R18
03ED 9517 ROR R17
03EE 9507 ROR R16
itof2:
03EF 2333 TST R19
03F0 F7C9 BNE 0x03EA
itof3:
03F1 2322 TST R18
03F2 F449 BNE 0x03FC
03F3 50B8 SUBI R27,0x8
03F4 2F21 MOV R18,R17
03F5 2F10 MOV R17,R16
03F6 E000 LDI R16,0
03F7 CFF9 RJMP itof3
03F8 95BA DEC R27
03F9 0F00 LSL R16
03FA 1F11 ROL R17
03FB 1F22 ROL R18
03FC F7DA BPL 0x03F8
03FD 2F3B MOV R19,R27
03FE 940C054F JMP repack
save_floatregs:
0400 92DA ST R13,-Y
0401 92EA ST R14,-Y
0402 92FA ST R15,-Y
0403 938A ST R24,-Y
0404 922A ST R2,-Y
0405 923A ST R3,-Y
0406 924A ST R4,-Y
0407 939A ST R25,-Y
0408 93AA ST R26,-Y
0409 93BA ST R27,-Y
040A 9508 RET
restore_floatregs:
040B 91B9 LD R27,Y+
040C 91A9 LD R26,Y+
040D 9199 LD R25,Y+
040E 9049 LD R4,Y+
040F 9039 LD R3,Y+
0410 9029 LD R2,Y+
0411 9189 LD R24,Y+
0412 90F9 LD R15,Y+
0413 90E9 LD R14,Y+
0414 90D9 LD R13,Y+
0415 9508 RET
stk2arg1:
0416 842A LDD R2,Y+10
0417 843B LDD R3,Y+11
0418 844C LDD R4,Y+12
0419 859D LDD R25,Y+13
041A 9508 RET
stk2arg0:
041B 850E LDD R16,Y+14
041C 851F LDD R17,Y+15
041D 8928 LDD R18,Y+16
041E 8939 LDD R19,Y+17
041F 9508 RET
float_epilog:
0420 DFEA RCALL restore_floatregs
0421 920F PUSH R0
0422 B60F IN R0,0x3F
0423 9628 ADIW R28,0x8
0424 BE0F OUT 0x3F,R0
0425 900F POP R0
0426 9508 RET
float_prolog:
0427 DFD8 RCALL save_floatregs
0428 DFF2 RCALL stk2arg0
0429 CFEC RJMP stk2arg1
add32fs:
042A D002 RCALL add32f
042B 940C02F4 JMP push_arg4
add32f:
042D 940E0427 CALL float_prolog
042F D012 RCALL FADD
0430 940C0420 JMP float_epilog
sub32fs:
0432 D002 RCALL sub32f
0433 940C02F4 JMP push_arg4
sub32f:
0435 940E0427 CALL float_prolog
0437 D009 RCALL FSUB
0438 940C0420 JMP float_epilog
fret2:
043A 2F8A MOV R24,R26
043B 2F39 MOV R19,R25
043C 2D24 MOV R18,R4
043D 2D13 MOV R17,R3
043E 2D02 MOV R16,R2
043F 940C054F JMP repack
FSUB:
0441 5890 SUBI R25,0x80
FADD:
0442 940E053D CALL unpack
0444 3890 CPI R25,0x80
0445 F3C9 BEQ 0x043F
0446 3830 CPI R19,0x80
0447 F391 BEQ 0x043A
0448 2FB3 MOV R27,R19
0449 1BB9 SUB R27,R25
044A F3A3 BVS 0x043F
044B F02A BMI 0x0451
044C F439 BNE 0x0454
044D 1502 CP R16,R2
044E 0513 CPC R17,R3
044F 0524 CPC R18,R4
0450 F418 BCC 0x0454
0451 940E0531 CALL swapacc
0453 CFF4 RJMP 0x0448
0454 31B8 CPI R27,0x18
0455 F018 BCS 0x0459
0456 2422 CLR R2
0457 2433 CLR R3
0458 2444 CLR R4
0459 30B8 CPI R27,0x8
045A F028 BCS 0x0460
045B 2C23 MOV R2,R3
045C 2C34 MOV R3,R4
045D 2444 CLR R4
045E 50B8 SUBI R27,0x8
045F CFF9 RJMP 0x0459
0460 23BB TST R27
0461 F029 BEQ 0x0467
0462 9446 LSR R4
0463 9437 ROR R3
0464 9427 ROR R2
0465 95BA DEC R27
0466 F7D9 BNE 0x0462
0467 2FB8 MOV R27,R24
0468 27BA EOR R27,R26
0469 F04A BMI 0x0473
046A D018 RCALL 0x0483
046B F698 BCC 0x043F
046C 9527 ROR R18
046D 9517 ROR R17
046E 9507 ROR R16
046F 5F3F SUBI R19,0xFF
0470 F673 BVC 0x043F
0471 940C051E JMP maxres
0473 D013 RCALL usub24
0474 F411 BNE 0x0477
0475 940C0525 JMP minres
0477 F410 BCC 0x047A
0478 940E0518 CALL negmant
047A 2322 TST R18
047B F21A BMI 0x043F
047C 0F00 LSL R16
047D 1F11 ROL R17
047E 1F22 ROL R18
047F 5031 SUBI R19,1
0480 F7CB BVC 0x047A
0481 940C051E JMP maxres
0483 0D02 ADD R16,R2
0484 1D13 ADC R17,R3
0485 1D24 ADC R18,R4
0486 9508 RET
usub24:
0487 1902 SUB R16,R2
0488 0913 SBC R17,R3
0489 0924 SBC R18,R4
048A 9508 RET
cmp32f:
048B 940E0427 CALL float_prolog
048D D002 RCALL FLTCP
048E 940C0420 JMP float_epilog
FLTCP:
0490 D002 RCALL 0x0493
0491 23BB TST R27
0492 9508 RET
0493 2333 TST R19
0494 F082 BMI 0x04A5
0495 2399 TST R25
0496 F042 BMI 0x049F
0497 1739 CP R19,R25
0498 F040 BCS 0x04A1
0499 F429 BNE 0x049F
049A 1502 CP R16,R2
049B 0513 CPC R17,R3
049C 0524 CPC R18,R4
049D F018 BCS 0x04A1
049E F021 BEQ 0x04A3
049F E0B1 LDI R27,1
04A0 9508 RET
04A1 EFBF LDI R27,0xFF
04A2 9508 RET
04A3 27BB CLR R27
04A4 9508 RET
04A5 2399 TST R25
04A6 F7D2 BPL 0x04A1
04A7 1739 CP R19,R25
04A8 F3B0 BCS 0x049F
04A9 F7B9 BNE 0x04A1
04AA 1502 CP R16,R2
04AB 0513 CPC R17,R3
04AC 0524 CPC R18,R4
04AD F388 BCS 0x049F
04AE F3A1 BEQ 0x04A3
04AF CFF1 RJMP 0x04A1
04B0 E7BF LDI R27,0x7F
04B1 2F3B MOV R19,R27
04B2 2B2B OR R18,R27
04B3 EF0F LDI R16,0xFF
04B4 EF1F LDI R17,0xFF
04B5 9508 RET
04B6 2700 CLR R16
04B7 2711 CLR R17
04B8 2722 CLR R18
04B9 2733 CLR R19
04BA 2788 CLR R24
04BB 9508 RET
empy32fs:
04BC D002 RCALL empy32f
04BD 940C02F4 JMP push_arg4
empy32f:
04BF 940E0427 CALL float_prolog
04C1 920F PUSH R0
04C2 92CF PUSH R12
04C3 D004 RCALL eFMUL
04C4 90CF POP R12
04C5 900F POP R0
04C6 940C0420 JMP float_epilog
eFMUL:
04C8 940E053D CALL unpack
04CA F359 BEQ 0x04B6
04CB 3890 CPI R25,0x80
04CC F349 BEQ 0x04B6
04CD 278A EOR R24,R26
04CE 9408 BSET 0
04CF 1F39 ADC R19,R25
04D0 F2FB BVS 0x04B0
04D1 D00E RCALL eumul24
04D2 2D2F MOV R18,R15
04D3 2D1E MOV R17,R14
04D4 2D0D MOV R16,R13
04D5 2322 TST R18
04D6 F02A BMI 0x04DC
04D7 953A DEC R19
04D8 0CCC LSL R12
04D9 1F00 ROL R16
04DA 1F11 ROL R17
04DB 1F22 ROL R18
04DC 5F3F SUBI R19,0xFF
04DD F293 BVS 0x04B0
04DE 940C054F JMP repack
eumul24:
04E0 9D22 MUL R18,R2
04E1 2CC0 MOV R12,R0
04E2 2CD1 MOV R13,R1
04E3 9D24 MUL R18,R4
04E4 2CE0 MOV R14,R0
04E5 2CF1 MOV R15,R1
04E6 9D12 MUL R17,R2
04E7 0CC1 ADD R12,R1
04E8 1EDB ADC R13,R27
04E9 1EEB ADC R14,R27
04EA 1EFB ADC R15,R27
04EB 9D03 MUL R16,R3
04EC 0CC1 ADD R12,R1
04ED 1EDB ADC R13,R27
04EE 1EEB ADC R14,R27
04EF 1EFB ADC R15,R27
04F0 9D13 MUL R17,R3
04F1 0CC0 ADD R12,R0
04F2 1CD1 ADC R13,R1
04F3 1EEB ADC R14,R27
04F4 1EFB ADC R15,R27
04F5 9D04 MUL R16,R4
04F6 0CC0 ADD R12,R0
04F7 1CD1 ADC R13,R1
04F8 1EEB ADC R14,R27
04F9 1EFB ADC R15,R27
04FA 9D23 MUL R18,R3
04FB 0CD0 ADD R13,R0
04FC 1CE1 ADC R14,R1
04FD 1EFB ADC R15,R27
04FE 9D14 MUL R17,R4
04FF 0CD0 ADD R13,R0
0500 1CE1 ADC R14,R1
0501 1EFB ADC R15,R27
0502 20CC TST R12
0503 F422 BPL 0x0508
0504 9488 BCLR 0
0505 1EDB ADC R13,R27
0506 1EEB ADC R14,R27
0507 1EFB ADC R15,R27
0508 9508 RET
savfacc1:
0509 938A ST R24,-Y
050A 93BA ST R27,-Y
050B 9508 RET
restorefacc1:
050C 91B9 LD R27,Y+
050D 9189 LD R24,Y+
050E 9508 RET
unpackfacc1:
050F 2F83 MOV R24,R19
0510 7880 ANDI R24,0x80
0511 0F22 LSL R18
0512 1F33 ROL R19
0513 5830 SUBI R19,0x80
0514 9408 BSET 0
0515 9527 ROR R18
0516 3830 CPI R19,0x80
0517 9508 RET
negmant:
0518 9510 COM R17
0519 9520 COM R18
051A 9501 NEG R16
051B 4F1F SBCI R17,0xFF
051C 4F2F SBCI R18,0xFF
051D 9508 RET
maxres:
051E E7BF LDI R27,0x7F
051F 2F3B MOV R19,R27
0520 2B2B OR R18,R27
0521 EFBF LDI R27,0xFF
0522 2F0B MOV R16,R27
0523 2F1B MOV R17,R27
0524 9508 RET
minres:
0525 2700 CLR R16
0526 2711 CLR R17
0527 2722 CLR R18
0528 2733 CLR R19
0529 2788 CLR R24
052A 9508 RET
ac1toac2:
052B 2F93 MOV R25,R19
052C 2E20 MOV R2,R16
052D 2E31 MOV R3,R17
052E 2E42 MOV R4,R18
052F 2FA8 MOV R26,R24
0530 9508 RET
swapacc:
0531 922A ST R2,-Y
0532 923A ST R3,-Y
0533 924A ST R4,-Y
0534 939A ST R25,-Y
0535 93AA ST R26,-Y
0536 DFF4 RCALL ac1toac2
0537 9189 LD R24,Y+
0538 9139 LD R19,Y+
0539 9129 LD R18,Y+
053A 9119 LD R17,Y+
053B 9109 LD R16,Y+
053C 9508 RET
unpack:
053D 2F83 MOV R24,R19
053E E8B0 LDI R27,0x80
053F 0F22 LSL R18
0540 1F33 ROL R19
0541 273B EOR R19,R27
0542 0FBB LSL R27
0543 9527 ROR R18
0544 7880 ANDI R24,0x80
0545 2FA9 MOV R26,R25
0546 E8B0 LDI R27,0x80
0547 0C44 LSL R4
0548 1F99 ROL R25
0549 279B EOR R25,R27
054A 0FBB LSL R27
054B 9447 ROR R4
054C 78A0 ANDI R26,0x80
054D 3830 CPI R19,0x80
054E 9508 RET
repack:
054F 0F22 LSL R18
0550 E8B0 LDI R27,0x80
0551 27B3 EOR R27,R19
0552 0F88 LSL R24
0553 95B7 ROR R27
0554 9527 ROR R18
0555 2F3B MOV R19,R27
0556 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -