📄 18b20.lst
字号:
268 EF8F LDI R24,0xFF
269 BB8B OUT 0x1B,R24
(0228) led_contrl_port |= (1<<led_a)|(1<<led_b)|(1<<led_c)|(1<<led_d);
FILE: <library>
26A B388 IN R24,0x18
26B 608F ORI R24,0xF
26C BB88 OUT 0x18,R24
26D 9508 RET
mod16u:
26E 9468 BSET 6
26F C001 RJMP xdiv16u
div16u:
270 94E8 BCLR 6
xdiv16u:
271 92EA ST R14,-Y
272 92FA ST R15,-Y
273 938A ST R24,-Y
274 24EE CLR R14
275 24FF CLR R15
276 E180 LDI R24,0x10
277 0F00 LSL R16
278 1F11 ROL R17
279 1CEE ROL R14
27A 1CFF ROL R15
27B 16E2 CP R14,R18
27C 06F3 CPC R15,R19
27D F018 BCS 0x0281
27E 1AE2 SUB R14,R18
27F 0AF3 SBC R15,R19
280 9503 INC R16
281 958A DEC R24
282 F7A1 BNE 0x0277
283 F416 BRTC 0x0286
284 2D0E MOV R16,R14
285 2D1F MOV R17,R15
286 9189 LD R24,Y+
287 90F9 LD R15,Y+
288 90E9 LD R14,Y+
289 9508 RET
mod8u:
28A 9468 BSET 6
28B C001 RJMP xdiv8u
div8u:
28C 94E8 BCLR 6
xdiv8u:
28D 932A ST R18,-Y
28E 92FA ST R15,-Y
28F 92EA ST R14,-Y
290 24FF CLR R15
291 24EE CLR R14
292 E120 LDI R18,0x10
293 0F00 LSL R16
294 1CFF ROL R15
295 1CEE ROL R14
296 16E1 CP R14,R17
297 F010 BCS 0x029A
298 1AE1 SUB R14,R17
299 9503 INC R16
29A 952A DEC R18
29B F7B9 BNE 0x0293
29C F40E BRTC 0x029E
29D 2D0E MOV R16,R14
29E 90E9 LD R14,Y+
29F 90F9 LD R15,Y+
2A0 9129 LD R18,Y+
2A1 9508 RET
empy16s:
2A2 920A ST R0,-Y
2A3 921A ST R1,-Y
2A4 938A ST R24,-Y
2A5 939A ST R25,-Y
2A6 9F02 MUL R16,R18
2A7 01C0 MOVW R24,R0
2A8 9F12 MUL R17,R18
2A9 0D90 ADD R25,R0
2AA 9F03 MUL R16,R19
2AB 0D90 ADD R25,R0
2AC 018C MOVW R16,R24
2AD 9199 LD R25,Y+
2AE 9189 LD R24,Y+
2AF 9019 LD R1,Y+
2B0 9009 LD R0,Y+
2B1 9508 RET
push_xgset300C:
2B2 935A ST R21,-Y
2B3 934A ST R20,-Y
2B4 92BA ST R11,-Y
2B5 92AA ST R10,-Y
2B6 9508 RET
pop_xgset300C:
2B7 90A9 LD R10,Y+
2B8 90B9 LD R11,Y+
2B9 9149 LD R20,Y+
2BA 9159 LD R21,Y+
2BB 9508 RET
push_xgsetF00C:
2BC 937A ST R23,-Y
2BD 936A ST R22,-Y
2BE 935A ST R21,-Y
2BF 934A ST R20,-Y
2C0 92BA ST R11,-Y
2C1 92AA ST R10,-Y
2C2 9508 RET
pop_xgsetF00C:
2C3 90A9 LD R10,Y+
2C4 90B9 LD R11,Y+
2C5 9149 LD R20,Y+
2C6 9159 LD R21,Y+
2C7 9169 LD R22,Y+
2C8 9179 LD R23,Y+
2C9 9508 RET
push_xgset303C:
2CA 935A ST R21,-Y
2CB 934A ST R20,-Y
2CC 92DA ST R13,-Y
2CD 92CA ST R12,-Y
2CE 92BA ST R11,-Y
2CF 92AA ST R10,-Y
2D0 9508 RET
pop_xgset303C:
2D1 90A9 LD R10,Y+
2D2 90B9 LD R11,Y+
2D3 90C9 LD R12,Y+
2D4 90D9 LD R13,Y+
2D5 9149 LD R20,Y+
2D6 9159 LD R21,Y+
2D7 9508 RET
push_xgsetF03C:
2D8 937A ST R23,-Y
2D9 936A ST R22,-Y
2DA 935A ST R21,-Y
2DB 934A ST R20,-Y
2DC 92DA ST R13,-Y
2DD 92CA ST R12,-Y
2DE 92BA ST R11,-Y
2DF 92AA ST R10,-Y
2E0 9508 RET
pop_xgsetF03C:
2E1 90A9 LD R10,Y+
2E2 90B9 LD R11,Y+
2E3 90C9 LD R12,Y+
2E4 90D9 LD R13,Y+
2E5 9149 LD R20,Y+
2E6 9159 LD R21,Y+
2E7 9169 LD R22,Y+
2E8 9179 LD R23,Y+
2E9 9508 RET
neg32:
2EA 9500 COM R16
2EB 9510 COM R17
2EC 9520 COM R18
2ED 9530 COM R19
2EE 5F0F SUBI R16,0xFF
2EF 4F1F SBCI R17,0xFF
2F0 4F2F SBCI R18,0xFF
2F1 4F3F SBCI R19,0xFF
2F2 9508 RET
lpm32:
2F3 93EA ST R30,-Y
2F4 93FA ST R31,-Y
2F5 920A ST R0,-Y
2F6 2FE0 MOV R30,R16
2F7 2FF1 MOV R31,R17
2F8 95C8 LPM
2F9 2D00 MOV R16,R0
2FA 9631 ADIW R30,1
2FB 95C8 LPM
2FC 2D10 MOV R17,R0
2FD 9631 ADIW R30,1
2FE 95C8 LPM
2FF 2D20 MOV R18,R0
300 9631 ADIW R30,1
301 95C8 LPM
302 2D30 MOV R19,R0
303 9009 LD R0,Y+
304 91F9 LD R31,Y+
305 91E9 LD R30,Y+
306 9508 RET
lsl8:
307 2311 TST R17
308 F019 BEQ 0x030C
309 0F00 LSL R16
30A 951A DEC R17
30B CFFB RJMP lsl8
30C 9508 RET
fpint:
30D 934A ST R20,-Y
30E 935A ST R21,-Y
30F 936A ST R22,-Y
310 940E 0369 CALL unpacku
312 F0F1 BEQ 0x0331
313 2355 TST R21
314 F0C2 BMI 0x032D
315 314F CPI R20,0x1F
316 F4A8 BCC 0x032C
317 3147 CPI R20,0x17
318 F0C1 BEQ 0x0331
319 F450 BCC 0x0324
31A 9541 NEG R20
31B 5E49 SUBI R20,0xE9
31C C005 RJMP 0x0322
31D 9535 ASR R19
31E 9527 ROR R18
31F 9517 ROR R17
320 9507 ROR R16
321 954A DEC R20
322 F7D1 BNE 0x031D
323 C00D RJMP 0x0331
324 5147 SUBI R20,0x17
325 0F00 LSL R16
326 1F11 ROL R17
327 1F22 ROL R18
328 1F33 ROL R19
329 954A DEC R20
32A F7D1 BNE 0x0325
32B C005 RJMP 0x0331
32C E73F LDI R19,0x7F
32D 2F23 MOV R18,R19
32E 2F13 MOV R17,R19
32F 2F03 MOV R16,R19
330 C004 RJMP 0x0335
331 2366 TST R22
332 F011 BEQ 0x0335
333 940E 02EA CALL neg32
335 9169 LD R22,Y+
336 9159 LD R21,Y+
337 9149 LD R20,Y+
338 9508 RET
uint2fp:
339 9468 BSET 6
33A C001 RJMP 0x033C
int2fp:
33B 94E8 BCLR 6
33C 2722 CLR R18
33D 2733 CLR R19
33E F046 BRTS 0x0347
33F FD17 SBRC R17,7
340 9520 COM R18
341 FD17 SBRC R17,7
342 9530 COM R19
343 C003 RJMP 0x0347
ulong2fp:
344 9468 BSET 6
345 C001 RJMP 0x0347
long2fp:
346 94E8 BCLR 6
347 934A ST R20,-Y
348 935A ST R21,-Y
349 936A ST R22,-Y
34A E147 LDI R20,0x17
34B 2766 CLR R22
34C 2755 CLR R21
34D F02E BRTS 0x0353
34E 2333 TST R19
34F F41A BPL 0x0353
350 940E 02EA CALL neg32
352 E860 LDI R22,0x80
353 940E 037E CALL normalize_and_pack
355 9169 LD R22,Y+
356 9159 LD R21,Y+
357 9149 LD R20,Y+
358 9508 RET
unpacks:
359 D00F RCALL unpacku
35A F029 BEQ 0x0360
35B 2366 TST R22
35C F011 BEQ 0x035F
35D 940E 02EA CALL neg32
35F 9498 BCLR 1
360 9508 RET
tstR16_R19:
361 2300 TST R16
362 F429 BNE 0x0368
363 2311 TST R17
364 F419 BNE 0x0368
365 2322 TST R18
366 F409 BNE 0x0368
367 2333 TST R19
368 9508 RET
unpacku:
369 DFF7 RCALL tstR16_R19
36A F079 BEQ 0x037A
36B 2F63 MOV R22,R19
36C 7860 ANDI R22,0x80
36D 0F22 LSL R18
36E 1F33 ROL R19
36F 2F43 MOV R20,R19
370 E75F LDI R21,0x7F
371 1B45 SUB R20,R21
372 2755 CLR R21
373 4050 SBCI R21,0
374 9526 LSR R18
375 E830 LDI R19,0x80
376 2B23 OR R18,R19
377 2733 CLR R19
378 9498 BCLR 1
379 9508 RET
37A 2744 CLR R20
37B 2755 CLR R21
37C 2766 CLR R22
37D 9508 RET
normalize_and_pack:
37E DFE2 RCALL tstR16_R19
37F F121 BEQ 0x03A4
380 939A ST R25,-Y
381 938A ST R24,-Y
382 E78E LDI R24,0x7E
383 E090 LDI R25,0
384 2333 TST R19
385 F051 BEQ 0x0390
386 9536 LSR R19
387 9527 ROR R18
388 9517 ROR R17
389 9507 ROR R16
38A 1748 CP R20,R24
38B 0759 CPC R21,R25
38C F4C4 BGE 0x03A5
38D 5F4F SUBI R20,0xFF
38E 4F5F SBCI R21,0xFF
38F CFF4 RJMP 0x0384
390 9580 COM R24
391 9590 COM R25
392 9601 ADIW R24,1
393 2322 TST R18
394 F0AA BMI 0x03AA
395 0F00 LSL R16
396 1F11 ROL R17
397 1F22 ROL R18
398 1748 CP R20,R24
399 0759 CPC R21,R25
39A F01C BLT 0x039E
39B 5041 SUBI R20,1
39C 4050 SBCI R21,0
39D CFF5 RJMP 0x0393
39E 2700 CLR R16
39F 2711 CLR R17
3A0 2722 CLR R18
3A1 2733 CLR R19
3A2 9189 LD R24,Y+
3A3 9199 LD R25,Y+
3A4 9508 RET
3A5 2733 CLR R19
3A6 EF0F LDI R16,0xFF
3A7 2F10 MOV R17,R16
3A8 E72F LDI R18,0x7F
3A9 2F32 MOV R19,R18
3AA 9189 LD R24,Y+
3AB 9199 LD R25,Y+
pack:
3AC DFB4 RCALL tstR16_R19
3AD F039 BEQ 0x03B5
3AE 5841 SUBI R20,0x81
3AF 4F5F SBCI R21,0xFF
3B0 2F34 MOV R19,R20
3B1 0F22 LSL R18
3B2 9536 LSR R19
3B3 9527 ROR R18
3B4 2B36 OR R19,R22
3B5 9508 RET
fpneg:
3B6 DFAA RCALL tstR16_R19
3B7 F021 BEQ 0x03BC
3B8 930F PUSH R16
3B9 E800 LDI R16,0x80
3BA 2730 EOR R19,R16
3BB 910F POP R16
3BC 9508 RET
fpneg2:
3BD DFF8 RCALL fpneg
3BE 933A ST R19,-Y
3BF 932A ST R18,-Y
3C0 931A ST R17,-Y
3C1 930A ST R16,-Y
3C2 9508 RET
saveR8toR25:
3C3 928A ST R8,-Y
3C4 929A ST R9,-Y
3C5 92AA ST R10,-Y
3C6 92BA ST R11,-Y
3C7 92CA ST R12,-Y
3C8 92DA ST R13,-Y
3C9 92EA ST R14,-Y
3CA 92FA ST R15,-Y
3CB 934A ST R20,-Y
3CC 935A ST R21,-Y
3CD 936A ST R22,-Y
3CE 937A ST R23,-Y
3CF 938A ST R24,-Y
3D0 939A ST R25,-Y
3D1 9508 RET
restoreR8toR25:
3D2 9199 LD R25,Y+
3D3 9189 LD R24,Y+
3D4 9179 LD R23,Y+
3D5 9169 LD R22,Y+
3D6 9159 LD R21,Y+
3D7 9149 LD R20,Y+
3D8 90F9 LD R15,Y+
3D9 90E9 LD R14,Y+
3DA 90D9 LD R13,Y+
3DB 90C9 LD R12,Y+
3DC 90B9 LD R11,Y+
3DD 90A9 LD R10,Y+
3DE 9099 LD R9,Y+
3DF 9089 LD R8,Y+
3E0 9508 RET
fpmule:
3E1 940E 03C3 CALL saveR8toR25
3E3 93AA ST R26,-Y
3E4 93BA ST R27,-Y
3E5 940E 0369 CALL unpacku
3E7 F1D1 BEQ 0x0422
3E8 2EE6 MOV R14,R22
3E9 2ED5 MOV R13,R21
3EA 2EC4 MOV R12,R20
3EB 2EB3 MOV R11,R19
3EC 2EA2 MOV R10,R18
3ED 2E91 MOV R9,R17
3EE 2E80 MOV R8,R16
3EF 8100 LDD R16,Z+0
3F0 8111 LDD R17,Z+1
3F1 8122 LDD R18,Z+2
3F2 8133 LDD R19,Z+3
3F3 940E 0369 CALL unpacku
3F5 F161 BEQ 0x0422
3F6 256E EOR R22,R14
3F7 0D4C ADD R20,R12
3F8 1D5D ADC R21,R13
3F9 3840 CPI R20,0x80
3FA 0753 CPC R21,R19
3FB F55C BGE 0x0427
3FC 3841 CPI R20,0x81
3FD EF7F LDI R23,0xFF
3FE 0757 CPC R21,R23
3FF F164 BLT 0x042C
400 9EA2 MUL R10,R18
401 2DB1 MOV R27,R1
402 2DA0 MOV R26,R0
403 9E91 MUL R9,R17
404 2D91 MOV R25,R1
405 2D80 MOV R24,R0
406 9EA0 MUL R10,R16
407 0D80 ADD R24,R0
408 1D91 ADC R25,R1
409 1FA3 ADC R26,R19
40A 1FB3 ADC R27,R19
40B 9E82 MUL R8,R18
40C 0D80 ADD R24,R0
40D 1D91 ADC R25,R1
40E 1FA3 ADC R26,R19
40F 1FB3 ADC R27,R19
410 9E92 MUL R9,R18
411 0D90 ADD R25,R0
412 1DA1 ADC R26,R1
413 1FB3 ADC R27,R19
414 9EA1 MUL R10,R17
415 0D90 ADD R25,R0
416 1DA1 ADC R26,R1
417 1FB3 ADC R27,R19
418 2F2B MOV R18,R27
419 2F1A MOV R17,R26
41A 2F09 MOV R16,R25
41B 0F88 LSL R24
41C 1F00 ROL R16
41D 1F11 ROL R17
41E 1F22 ROL R18
41F 1F33 ROL R19
420 940E 037E CALL normalize_and_pack
422 91B9 LD R27,Y+
423 91A9 LD R26,Y+
424 940E 03D2 CALL restoreR8toR25
426 9508 RET
427 EF0F LDI R16,0xFF
428 2F10 MOV R17,R16
429 E72F LDI R18,0x7F
42A E74F LDI R20,0x7F
42B CFF6 RJMP 0x0422
42C 2700 CLR R16
42D 2F10 MOV R17,R16
42E 2F20 MOV R18,R16
42F 2F30 MOV R19,R16
430 CFF1 RJMP 0x0422
fpmule2:
431 93FA ST R31,-Y
432 93EA ST R30,-Y
433 2FEC MOV R30,R28
434 2FFD MOV R31,R29
435 9632 ADIW R30,2
436 940E 03E1 CALL fpmule
438 91E9 LD R30,Y+
439 91F9 LD R31,Y+
43A 9624 ADIW R28,4
43B 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -