📄 ds18b20.lst
字号:
0254 9533 INC R19
0255 F3DA BMI 0x0251
0256 E030 LDI R19,0
0257 50B8 SUBI R27,0x8
0258 F452 BPL 0x0263
0259 5FB8 SUBI R27,0xF8
025A 2F32 MOV R19,R18
025B 2F21 MOV R18,R17
025C 2F10 MOV R17,R16
025D E800 LDI R16,0x80
025E C006 RJMP 0x0265
025F 2F01 MOV R16,R17
0260 2F12 MOV R17,R18
0261 E020 LDI R18,0
0262 50B8 SUBI R27,0x8
0263 30B8 CPI R27,0x8
0264 F7D0 BCC 0x025F
0265 23BB TST R27
0266 F031 BEQ 0x026D
0267 9536 LSR R19
0268 9527 ROR R18
0269 9517 ROR R17
026A 9507 ROR R16
026B 95BA DEC R27
026C F7D1 BNE 0x0267
026D 9508 RET
int2fp:
026E 2722 CLR R18
026F FD17 SBRC R17,7
0270 9520 COM R18
0271 2733 CLR R19
0272 FD27 SBRC R18,7
0273 9530 COM R19
long2fp:
0274 D119 RCALL savfacc1
0275 D001 RCALL ITOF
0276 C11A RJMP restorefacc1
ITOF:
0277 2788 CLR R24
0278 2333 TST R19
0279 F412 BPL 0x027C
027A DF98 RCALL neg32
027B 9580 COM R24
027C 2FB0 MOV R27,R16
027D 2BB1 OR R27,R17
027E 2BB2 OR R27,R18
027F 2BB3 OR R27,R19
0280 F409 BNE 0x0282
0281 C128 RJMP minres
0282 E1B6 LDI R27,0x16
0283 C005 RJMP itof2
0284 95B3 INC R27
0285 9536 LSR R19
0286 9527 ROR R18
0287 9517 ROR R17
0288 9507 ROR R16
itof2:
0289 2333 TST R19
028A F7C9 BNE 0x0284
itof3:
028B 2322 TST R18
028C F449 BNE 0x0296
028D 50B8 SUBI R27,0x8
028E 2F21 MOV R18,R17
028F 2F10 MOV R17,R16
0290 E000 LDI R16,0
0291 CFF9 RJMP itof3
0292 95BA DEC R27
0293 0F00 LSL R16
0294 1F11 ROL R17
0295 1F22 ROL R18
0296 F7DA BPL 0x0292
0297 2F3B MOV R19,R27
0298 C13B RJMP repack
save_floatregs:
0299 92DA ST R13,-Y
029A 92EA ST R14,-Y
029B 92FA ST R15,-Y
029C 938A ST R24,-Y
029D 922A ST R2,-Y
029E 923A ST R3,-Y
029F 924A ST R4,-Y
02A0 939A ST R25,-Y
02A1 93AA ST R26,-Y
02A2 93BA ST R27,-Y
02A3 9508 RET
restore_floatregs:
02A4 91B9 LD R27,Y+
02A5 91A9 LD R26,Y+
02A6 9199 LD R25,Y+
02A7 9049 LD R4,Y+
02A8 9039 LD R3,Y+
02A9 9029 LD R2,Y+
02AA 9189 LD R24,Y+
02AB 90F9 LD R15,Y+
02AC 90E9 LD R14,Y+
02AD 90D9 LD R13,Y+
02AE 9508 RET
stk2arg1:
02AF 842A LDD R2,Y+10
02B0 843B LDD R3,Y+11
02B1 844C LDD R4,Y+12
02B2 859D LDD R25,Y+13
02B3 9508 RET
stk2arg0:
02B4 850E LDD R16,Y+14
02B5 851F LDD R17,Y+15
02B6 8928 LDD R18,Y+16
02B7 8939 LDD R19,Y+17
02B8 9508 RET
float_epilog:
02B9 DFEA RCALL restore_floatregs
02BA 920F PUSH R0
02BB B60F IN R0,0x3F
02BC 9628 ADIW R28,0x8
02BD BE0F OUT 0x3F,R0
02BE 900F POP R0
02BF 9508 RET
float_prolog:
02C0 DFD8 RCALL save_floatregs
02C1 DFF2 RCALL stk2arg0
02C2 CFEC RJMP stk2arg1
add32fs:
02C3 D001 RCALL add32f
02C4 CF0A RJMP push_arg4
add32f:
02C5 DFFA RCALL float_prolog
02C6 D00D RCALL FADD
02C7 CFF1 RJMP float_epilog
sub32fs:
02C8 D001 RCALL sub32f
02C9 CF05 RJMP push_arg4
sub32f:
02CA DFF5 RCALL float_prolog
02CB D007 RCALL FSUB
02CC CFEC RJMP float_epilog
fret2:
02CD 2F8A MOV R24,R26
02CE 2F39 MOV R19,R25
02CF 2D24 MOV R18,R4
02D0 2D13 MOV R17,R3
02D1 2D02 MOV R16,R2
02D2 C101 RJMP repack
FSUB:
02D3 5890 SUBI R25,0x80
FADD:
02D4 D0ED RCALL unpack
02D5 3890 CPI R25,0x80
02D6 F3D9 BEQ 0x02D2
02D7 3830 CPI R19,0x80
02D8 F3A1 BEQ 0x02CD
02D9 2FB3 MOV R27,R19
02DA 1BB9 SUB R27,R25
02DB F3B3 BVS 0x02D2
02DC F02A BMI 0x02E2
02DD F431 BNE 0x02E4
02DE 1502 CP R16,R2
02DF 0513 CPC R17,R3
02E0 0524 CPC R18,R4
02E1 F410 BCC 0x02E4
02E2 D0D3 RCALL swapacc
02E3 CFF5 RJMP 0x02D9
02E4 31B8 CPI R27,0x18
02E5 F018 BCS 0x02E9
02E6 2422 CLR R2
02E7 2433 CLR R3
02E8 2444 CLR R4
02E9 30B8 CPI R27,0x8
02EA F028 BCS 0x02F0
02EB 2C23 MOV R2,R3
02EC 2C34 MOV R3,R4
02ED 2444 CLR R4
02EE 50B8 SUBI R27,0x8
02EF CFF9 RJMP 0x02E9
02F0 23BB TST R27
02F1 F029 BEQ 0x02F7
02F2 9446 LSR R4
02F3 9437 ROR R3
02F4 9427 ROR R2
02F5 95BA DEC R27
02F6 F7D9 BNE 0x02F2
02F7 2FB8 MOV R27,R24
02F8 27BA EOR R27,R26
02F9 F042 BMI 0x0302
02FA D014 RCALL 0x030F
02FB F6B0 BCC 0x02D2
02FC 9527 ROR R18
02FD 9517 ROR R17
02FE 9507 ROR R16
02FF 5F3F SUBI R19,0xFF
0300 F68B BVC 0x02D2
0301 C0A1 RJMP maxres
0302 D010 RCALL usub24
0303 F409 BNE 0x0305
0304 C0A5 RJMP minres
0305 F408 BCC 0x0307
0306 D096 RCALL negmant
0307 2322 TST R18
0308 F24A BMI 0x02D2
0309 0F00 LSL R16
030A 1F11 ROL R17
030B 1F22 ROL R18
030C 5031 SUBI R19,1
030D F7CB BVC 0x0307
030E C094 RJMP maxres
030F 0D02 ADD R16,R2
0310 1D13 ADC R17,R3
0311 1D24 ADC R18,R4
0312 9508 RET
usub24:
0313 1902 SUB R16,R2
0314 0913 SBC R17,R3
0315 0924 SBC R18,R4
0316 9508 RET
cmp32f:
0317 DFA8 RCALL float_prolog
0318 D001 RCALL FLTCP
0319 CF9F RJMP float_epilog
FLTCP:
031A D002 RCALL 0x031D
031B 23BB TST R27
031C 9508 RET
031D 2333 TST R19
031E F082 BMI 0x032F
031F 2399 TST R25
0320 F042 BMI 0x0329
0321 1739 CP R19,R25
0322 F040 BCS 0x032B
0323 F429 BNE 0x0329
0324 1502 CP R16,R2
0325 0513 CPC R17,R3
0326 0524 CPC R18,R4
0327 F018 BCS 0x032B
0328 F021 BEQ 0x032D
0329 E0B1 LDI R27,1
032A 9508 RET
032B EFBF LDI R27,0xFF
032C 9508 RET
032D 27BB CLR R27
032E 9508 RET
032F 2399 TST R25
0330 F7D2 BPL 0x032B
0331 1739 CP R19,R25
0332 F3B0 BCS 0x0329
0333 F7B9 BNE 0x032B
0334 1502 CP R16,R2
0335 0513 CPC R17,R3
0336 0524 CPC R18,R4
0337 F388 BCS 0x0329
0338 F3A1 BEQ 0x032D
0339 CFF1 RJMP 0x032B
033A E7BF LDI R27,0x7F
033B 2F3B MOV R19,R27
033C 2B2B OR R18,R27
033D EF0F LDI R16,0xFF
033E EF1F LDI R17,0xFF
033F 9508 RET
0340 2700 CLR R16
0341 2711 CLR R17
0342 2722 CLR R18
0343 2733 CLR R19
0344 2788 CLR R24
0345 9508 RET
empy32fs:
0346 D001 RCALL empy32f
0347 CE87 RJMP push_arg4
empy32f:
0348 DF77 RCALL float_prolog
0349 920F PUSH R0
034A 92CF PUSH R12
034B D003 RCALL eFMUL
034C 90CF POP R12
034D 900F POP R0
034E CF6A RJMP float_epilog
eFMUL:
034F D072 RCALL unpack
0350 F379 BEQ 0x0340
0351 3890 CPI R25,0x80
0352 F369 BEQ 0x0340
0353 278A EOR R24,R26
0354 9408 BSET 0
0355 1F39 ADC R19,R25
0356 F31B BVS 0x033A
0357 D00D RCALL eumul24
0358 2D2F MOV R18,R15
0359 2D1E MOV R17,R14
035A 2D0D MOV R16,R13
035B 2322 TST R18
035C F02A BMI 0x0362
035D 953A DEC R19
035E 0CCC LSL R12
035F 1F00 ROL R16
0360 1F11 ROL R17
0361 1F22 ROL R18
0362 5F3F SUBI R19,0xFF
0363 F2B3 BVS 0x033A
0364 C06F RJMP repack
eumul24:
0365 9D22 MUL R18,R2
0366 2CC0 MOV R12,R0
0367 2CD1 MOV R13,R1
0368 9D24 MUL R18,R4
0369 2CE0 MOV R14,R0
036A 2CF1 MOV R15,R1
036B 9D12 MUL R17,R2
036C 0CC1 ADD R12,R1
036D 1EDB ADC R13,R27
036E 1EEB ADC R14,R27
036F 1EFB ADC R15,R27
0370 9D03 MUL R16,R3
0371 0CC1 ADD R12,R1
0372 1EDB ADC R13,R27
0373 1EEB ADC R14,R27
0374 1EFB ADC R15,R27
0375 9D13 MUL R17,R3
0376 0CC0 ADD R12,R0
0377 1CD1 ADC R13,R1
0378 1EEB ADC R14,R27
0379 1EFB ADC R15,R27
037A 9D04 MUL R16,R4
037B 0CC0 ADD R12,R0
037C 1CD1 ADC R13,R1
037D 1EEB ADC R14,R27
037E 1EFB ADC R15,R27
037F 9D23 MUL R18,R3
0380 0CD0 ADD R13,R0
0381 1CE1 ADC R14,R1
0382 1EFB ADC R15,R27
0383 9D14 MUL R17,R4
0384 0CD0 ADD R13,R0
0385 1CE1 ADC R14,R1
0386 1EFB ADC R15,R27
0387 20CC TST R12
0388 F422 BPL 0x038D
0389 9488 BCLR 0
038A 1EDB ADC R13,R27
038B 1EEB ADC R14,R27
038C 1EFB ADC R15,R27
038D 9508 RET
savfacc1:
038E 938A ST R24,-Y
038F 93BA ST R27,-Y
0390 9508 RET
restorefacc1:
0391 91B9 LD R27,Y+
0392 9189 LD R24,Y+
0393 9508 RET
unpackfacc1:
0394 2F83 MOV R24,R19
0395 7880 ANDI R24,0x80
0396 0F22 LSL R18
0397 1F33 ROL R19
0398 5830 SUBI R19,0x80
0399 9408 BSET 0
039A 9527 ROR R18
039B 3830 CPI R19,0x80
039C 9508 RET
negmant:
039D 9510 COM R17
039E 9520 COM R18
039F 9501 NEG R16
03A0 4F1F SBCI R17,0xFF
03A1 4F2F SBCI R18,0xFF
03A2 9508 RET
maxres:
03A3 E7BF LDI R27,0x7F
03A4 2F3B MOV R19,R27
03A5 2B2B OR R18,R27
03A6 EFBF LDI R27,0xFF
03A7 2F0B MOV R16,R27
03A8 2F1B MOV R17,R27
03A9 9508 RET
minres:
03AA 2700 CLR R16
03AB 2711 CLR R17
03AC 2722 CLR R18
03AD 2733 CLR R19
03AE 2788 CLR R24
03AF 9508 RET
ac1toac2:
03B0 2F93 MOV R25,R19
03B1 2E20 MOV R2,R16
03B2 2E31 MOV R3,R17
03B3 2E42 MOV R4,R18
03B4 2FA8 MOV R26,R24
03B5 9508 RET
swapacc:
03B6 922A ST R2,-Y
03B7 923A ST R3,-Y
03B8 924A ST R4,-Y
03B9 939A ST R25,-Y
03BA 93AA ST R26,-Y
03BB DFF4 RCALL ac1toac2
03BC 9189 LD R24,Y+
03BD 9139 LD R19,Y+
03BE 9129 LD R18,Y+
03BF 9119 LD R17,Y+
03C0 9109 LD R16,Y+
03C1 9508 RET
unpack:
03C2 2F83 MOV R24,R19
03C3 E8B0 LDI R27,0x80
03C4 0F22 LSL R18
03C5 1F33 ROL R19
03C6 273B EOR R19,R27
03C7 0FBB LSL R27
03C8 9527 ROR R18
03C9 7880 ANDI R24,0x80
03CA 2FA9 MOV R26,R25
03CB E8B0 LDI R27,0x80
03CC 0C44 LSL R4
03CD 1F99 ROL R25
03CE 279B EOR R25,R27
03CF 0FBB LSL R27
03D0 9447 ROR R4
03D1 78A0 ANDI R26,0x80
03D2 3830 CPI R19,0x80
03D3 9508 RET
repack:
03D4 0F22 LSL R18
03D5 E8B0 LDI R27,0x80
03D6 27B3 EOR R27,R19
03D7 0F88 LSL R24
03D8 95B7 ROR R27
03D9 9527 ROR R18
03DA 2F3B MOV R19,R27
03DB 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -