📄 ds18b20.lst
字号:
036B F7D9 BNE 0x0367
036C 2FB8 MOV R27,R24
036D 27BA EOR R27,R26
036E F04A BMI 0x0378
036F D018 RCALL 0x0388
0370 F698 BCC 0x0344
0371 9527 ROR R18
0372 9517 ROR R17
0373 9507 ROR R16
0374 5F3F SUBI R19,0xFF
0375 F673 BVC 0x0344
0376 940C0396 JMP maxres
0378 D013 RCALL usub24
0379 F411 BNE 0x037C
037A 940C039D JMP minres
037C F410 BCC 0x037F
037D 940E0390 CALL negmant
037F 2322 TST R18
0380 F21A BMI 0x0344
0381 0F00 LSL R16
0382 1F11 ROL R17
0383 1F22 ROL R18
0384 5031 SUBI R19,1
0385 F7CB BVC 0x037F
0386 940C0396 JMP maxres
0388 0D02 ADD R16,R2
0389 1D13 ADC R17,R3
038A 1D24 ADC R18,R4
038B 9508 RET
usub24:
038C 1902 SUB R16,R2
038D 0913 SBC R17,R3
038E 0924 SBC R18,R4
038F 9508 RET
negmant:
0390 9510 COM R17
0391 9520 COM R18
0392 9501 NEG R16
0393 4F1F SBCI R17,0xFF
0394 4F2F SBCI R18,0xFF
0395 9508 RET
maxres:
0396 E7BF LDI R27,0x7F
0397 2F3B MOV R19,R27
0398 2B2B OR R18,R27
0399 EFBF LDI R27,0xFF
039A 2F0B MOV R16,R27
039B 2F1B MOV R17,R27
039C 9508 RET
minres:
039D 2700 CLR R16
039E 2711 CLR R17
039F 2722 CLR R18
03A0 2733 CLR R19
03A1 2788 CLR R24
03A2 9508 RET
ac1toac2:
03A3 2F93 MOV R25,R19
03A4 2E20 MOV R2,R16
03A5 2E31 MOV R3,R17
03A6 2E42 MOV R4,R18
03A7 2FA8 MOV R26,R24
03A8 9508 RET
swapacc:
03A9 922A ST R2,-Y
03AA 923A ST R3,-Y
03AB 924A ST R4,-Y
03AC 939A ST R25,-Y
03AD 93AA ST R26,-Y
03AE DFF4 RCALL ac1toac2
03AF 9189 LD R24,Y+
03B0 9139 LD R19,Y+
03B1 9129 LD R18,Y+
03B2 9119 LD R17,Y+
03B3 9109 LD R16,Y+
03B4 9508 RET
unpack:
03B5 2F83 MOV R24,R19
03B6 E8B0 LDI R27,0x80
03B7 0F22 LSL R18
03B8 1F33 ROL R19
03B9 273B EOR R19,R27
03BA 0FBB LSL R27
03BB 9527 ROR R18
03BC 7880 ANDI R24,0x80
03BD 2FA9 MOV R26,R25
03BE E8B0 LDI R27,0x80
03BF 0C44 LSL R4
03C0 1F99 ROL R25
03C1 279B EOR R25,R27
03C2 0FBB LSL R27
03C3 9447 ROR R4
03C4 78A0 ANDI R26,0x80
03C5 3830 CPI R19,0x80
03C6 9508 RET
repack:
03C7 0F22 LSL R18
03C8 E8B0 LDI R27,0x80
03C9 27B3 EOR R27,R19
03CA 0F88 LSL R24
03CB 95B7 ROR R27
03CC 9527 ROR R18
03CD 2F3B MOV R19,R27
03CE 9508 RET
cmp32f:
03CF 940E047C CALL float_prolog
03D1 D002 RCALL FLTCP
03D2 940C0475 JMP float_epilog
FLTCP:
03D4 D002 RCALL 0x03D7
03D5 23BB TST R27
03D6 9508 RET
03D7 2333 TST R19
03D8 F082 BMI 0x03E9
03D9 2399 TST R25
03DA F042 BMI 0x03E3
03DB 1739 CP R19,R25
03DC F040 BCS 0x03E5
03DD F429 BNE 0x03E3
03DE 1502 CP R16,R2
03DF 0513 CPC R17,R3
03E0 0524 CPC R18,R4
03E1 F018 BCS 0x03E5
03E2 F021 BEQ 0x03E7
03E3 E0B1 LDI R27,1
03E4 9508 RET
03E5 EFBF LDI R27,0xFF
03E6 9508 RET
03E7 27BB CLR R27
03E8 9508 RET
03E9 2399 TST R25
03EA F7D2 BPL 0x03E5
03EB 1739 CP R19,R25
03EC F3B0 BCS 0x03E3
03ED F7B9 BNE 0x03E5
03EE 1502 CP R16,R2
03EF 0513 CPC R17,R3
03F0 0524 CPC R18,R4
03F1 F388 BCS 0x03E3
03F2 F3A1 BEQ 0x03E7
03F3 CFF1 RJMP 0x03E5
03F4 E7BF LDI R27,0x7F
03F5 2F3B MOV R19,R27
03F6 2B2B OR R18,R27
03F7 EF0F LDI R16,0xFF
03F8 EF1F LDI R17,0xFF
03F9 9508 RET
03FA 2700 CLR R16
03FB 2711 CLR R17
03FC 2722 CLR R18
03FD 2733 CLR R19
03FE 2788 CLR R24
03FF 9508 RET
empy32fs:
0400 D002 RCALL empy32f
0401 940C044B JMP push_arg4
empy32f:
0403 940E047C CALL float_prolog
0405 920F PUSH R0
0406 92CF PUSH R12
0407 D004 RCALL eFMUL
0408 90CF POP R12
0409 900F POP R0
040A 940C0475 JMP float_epilog
eFMUL:
040C 940E03B5 CALL unpack
040E F359 BEQ 0x03FA
040F 3890 CPI R25,0x80
0410 F349 BEQ 0x03FA
0411 278A EOR R24,R26
0412 9408 BSET 0
0413 1F39 ADC R19,R25
0414 F2FB BVS 0x03F4
0415 D00E RCALL eumul24
0416 2D2F MOV R18,R15
0417 2D1E MOV R17,R14
0418 2D0D MOV R16,R13
0419 2322 TST R18
041A F02A BMI 0x0420
041B 953A DEC R19
041C 0CCC LSL R12
041D 1F00 ROL R16
041E 1F11 ROL R17
041F 1F22 ROL R18
0420 5F3F SUBI R19,0xFF
0421 F293 BVS 0x03F4
0422 940C03C7 JMP repack
eumul24:
0424 9D22 MUL R18,R2
0425 2CC0 MOV R12,R0
0426 2CD1 MOV R13,R1
0427 9D24 MUL R18,R4
0428 2CE0 MOV R14,R0
0429 2CF1 MOV R15,R1
042A 9D14 MUL R17,R4
042B 0CC1 ADD R12,R1
042C 1EDB ADC R13,R27
042D 1EEB ADC R14,R27
042E 1EFB ADC R15,R27
042F 9D03 MUL R16,R3
0430 0CC1 ADD R12,R1
0431 1EDB ADC R13,R27
0432 1EEB ADC R14,R27
0433 1EFB ADC R15,R27
0434 9D13 MUL R17,R3
0435 0CC0 ADD R12,R0
0436 1CD1 ADC R13,R1
0437 1EEB ADC R14,R27
0438 1EFB ADC R15,R27
0439 9D04 MUL R16,R4
043A 0CC0 ADD R12,R0
043B 1CD1 ADC R13,R1
043C 1EEB ADC R14,R27
043D 1EFB ADC R15,R27
043E 9D23 MUL R18,R3
043F 0CD0 ADD R13,R0
0440 1CE1 ADC R14,R1
0441 1EFB ADC R15,R27
0442 9D14 MUL R17,R4
0443 0CD0 ADD R13,R0
0444 1CE1 ADC R14,R1
0445 1EFB ADC R15,R27
0446 F41A BPL 0x044A
0447 94D3 INC R13
0448 1EEB ADC R14,R27
0449 1EFB ADC R15,R27
044A 9508 RET
push_arg4:
044B 933A ST R19,-Y
044C 932A ST R18,-Y
push_arg2:
044D 931A ST R17,-Y
044E 930A ST R16,-Y
044F 9508 RET
save_floatregs:
0450 92DA ST R13,-Y
0451 92EA ST R14,-Y
0452 92FA ST R15,-Y
0453 938A ST R24,-Y
0454 922A ST R2,-Y
0455 923A ST R3,-Y
0456 924A ST R4,-Y
0457 939A ST R25,-Y
0458 93AA ST R26,-Y
0459 93BA ST R27,-Y
045A 9508 RET
restore_floatregs:
045B 91B9 LD R27,Y+
045C 91A9 LD R26,Y+
045D 9199 LD R25,Y+
045E 9049 LD R4,Y+
045F 9039 LD R3,Y+
0460 9029 LD R2,Y+
0461 9189 LD R24,Y+
0462 90F9 LD R15,Y+
0463 90E9 LD R14,Y+
0464 90D9 LD R13,Y+
0465 9508 RET
stk2arg1:
0466 842A LDD R2,10+Y
0467 843B LDD R3,11+Y
0468 844C LDD R4,12+Y
0469 859D LDD R25,13+Y
046A 9508 RET
stk2arg0:
046B 850E LDD R16,14+Y
046C 851F LDD R17,15+Y
046D 8928 LDD R18,16+Y
046E 8939 LDD R19,17+Y
046F 9508 RET
stk2arg0x:
0470 850A LDD R16,10+Y
0471 851B LDD R17,11+Y
0472 852C LDD R18,12+Y
0473 853D LDD R19,13+Y
0474 9508 RET
float_epilog:
0475 DFE5 RCALL restore_floatregs
0476 920F PUSH R0
0477 B60F IN R0,P3F
0478 9628 ADIW R28,0x8
0479 BE0F OUT P3F,R0
047A 900F POP R0
047B 9508 RET
float_prolog:
047C DFD3 RCALL save_floatregs
047D DFED RCALL stk2arg0
047E CFE7 RJMP stk2arg1
push_gset1:
047F 935A ST R21,-Y
0480 934A ST R20,-Y
0481 9508 RET
pop_gset1:
0482 E0E1 LDI R30,1
pop:
0483 9149 LD R20,Y+
0484 9159 LD R21,Y+
0485 FDE0 SBRC R30,0
0486 9508 RET
0487 9169 LD R22,Y+
0488 9179 LD R23,Y+
0489 FDE1 SBRC R30,1
048A 9508 RET
048B 90A9 LD R10,Y+
048C 90B9 LD R11,Y+
048D FDE2 SBRC R30,2
048E 9508 RET
048F 90C9 LD R12,Y+
0490 90D9 LD R13,Y+
0491 FDE3 SBRC R30,3
0492 9508 RET
0493 90E9 LD R14,Y+
0494 90F9 LD R15,Y+
0495 9508 RET
push_gset2:
0496 937A ST R23,-Y
0497 936A ST R22,-Y
0498 940C047F JMP push_gset1
push_gset3:
049A 92BA ST R11,-Y
049B 92AA ST R10,-Y
049C 940C0496 JMP push_gset2
pop_gset2:
049E E0E2 LDI R30,2
049F 940C0483 JMP pop
pop_gset3:
04A1 E0E4 LDI R30,4
04A2 940C0483 JMP pop
lpm32:
04A4 93EA ST R30,-Y
04A5 93FA ST R31,-Y
04A6 920A ST R0,-Y
04A7 2FE0 MOV R30,R16
04A8 2FF1 MOV R31,R17
04A9 95C8 LPM
04AA 2D00 MOV R16,R0
04AB 9631 ADIW R30,1
04AC 95C8 LPM
04AD 2D10 MOV R17,R0
04AE 9631 ADIW R30,1
04AF 95C8 LPM
04B0 2D20 MOV R18,R0
04B1 9631 ADIW R30,1
04B2 95C8 LPM
04B3 2D30 MOV R19,R0
04B4 9009 LD R0,Y+
04B5 91F9 LD R31,Y+
04B6 91E9 LD R30,Y+
04B7 9508 RET
neg32:
04B8 9500 COM R16
04B9 9510 COM R17
04BA 9520 COM R18
04BB 9530 COM R19
04BC 5F0F SUBI R16,0xFF
04BD 4F1F SBCI R17,0xFF
04BE 4F2F SBCI R18,0xFF
04BF 4F3F SBCI R19,0xFF
04C0 9508 RET
lsl8:
04C1 2311 TST R17
04C2 F019 BEQ 0x04C6
04C3 0F00 LSL R16
04C4 951A DEC R17
04C5 CFFB RJMP lsl8
04C6 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -