📄 ultrawave.lst
字号:
03E3 7F8B ANDI R24,0xFB
03E4 BF87 OUT 0x37,R24
03E5 E48D LDI R24,0x4D
03E6 E092 LDI R25,2
03E7 93900127 STS time_counter+1,R25
03E9 93800126 STS time_counter,R24
03EB 9189 LD R24,Y+
03EC BF8F OUT 0x3F,R24
03ED 91E9 LD R30,Y+
03EE 9199 LD R25,Y+
03EF 9189 LD R24,Y+
03F0 9518 RETI
_int2_init:
03F1 988A CBI 0x11,2
03F2 9A92 SBI 0x12,2
03F3 E280 LDI R24,0x20
03F4 9380006A STS 0x6A,R24
03F6 B789 IN R24,0x39
03F7 7F8B ANDI R24,0xFB
03F8 BF89 OUT 0x39,R24
03F9 9508 RET
_timer0_init:
03FA 98BC CBI 0x17,4
03FB B780 IN R24,0x30
03FC 7F87 ANDI R24,0xF7
03FD BF80 OUT 0x30,R24
03FE E189 LDI R24,0x19
03FF BF83 OUT 0x33,R24
0400 EC87 LDI R24,0xC7
0401 BF81 OUT 0x31,R24
0402 9508 RET
_timer1_init:
0403 E081 LDI R24,1
0404 BD8E OUT 0x2E,R24
0405 EF8F LDI R24,0xFF
0406 BD8D OUT 0x2D,R24
0407 E680 LDI R24,0x60
0408 BD8C OUT 0x2C,R24
0409 B787 IN R24,0x37
040A 7F8B ANDI R24,0xFB
040B BF87 OUT 0x37,R24
040C 9508 RET
_calculate_distance:
value --> Y+0
time --> R20
040D 940E0548 CALL push_gset1
040F 01A8 MOVW R20,R16
0410 9724 SBIW R28,4
0411 E900 LDI R16,0x90
0412 E010 LDI R17,0
0413 940E0568 CALL lpm32
0415 933A ST R19,-Y
0416 932A ST R18,-Y
0417 931A ST R17,-Y
0418 930A ST R16,-Y
0419 E80C LDI R16,0x8C
041A E010 LDI R17,0
041B 940E0568 CALL lpm32
041D 933A ST R19,-Y
041E 932A ST R18,-Y
041F 931A ST R17,-Y
0420 930A ST R16,-Y
0421 018A MOVW R16,R20
0422 9516 LSR R17
0423 9507 ROR R16
0424 940E05C4 CALL int2fp
0426 933A ST R19,-Y
0427 932A ST R18,-Y
0428 931A ST R17,-Y
0429 930A ST R16,-Y
042A 940E06B0 CALL empy32fs
042C 018A MOVW R16,R20
042D 7001 ANDI R16,1
042E 7010 ANDI R17,0
042F 940E05C4 CALL int2fp
0431 933A ST R19,-Y
0432 932A ST R18,-Y
0433 931A ST R17,-Y
0434 930A ST R16,-Y
0435 940E061E CALL add32fs
0437 940E06B3 CALL empy32f
0439 01FE MOVW R30,R28
043A 8300 STD Z+0,R16
043B 8311 STD Z+1,R17
043C 8322 STD Z+2,R18
043D 8333 STD Z+3,R19
043E 01FE MOVW R30,R28
043F 8100 LDD R16,Z+0
0440 8111 LDD R17,Z+1
0441 8122 LDD R18,Z+2
0442 8133 LDD R19,Z+3
0443 9624 ADIW R28,4
0444 940E054B CALL pop_gset1
0446 9508 RET
_main:
0447 9724 SBIW R28,4
0448 94F8 BCLR 7
0449 EF8F LDI R24,0xFF
044A BB8A OUT 0x1A,R24
044B DFA5 RCALL _int2_init
044C DFB6 RCALL _timer1_init
044D DFAC RCALL _timer0_init
044E DF55 RCALL _Init_12864
044F DD9B RCALL _LcmClearTXT
0450 E28B LDI R24,0x2B
0451 E091 LDI R25,1
0452 8399 STD Y+1,R25
0453 8388 STD Y+0,R24
0454 2722 CLR R18
0455 2700 CLR R16
0456 DD3B RCALL _Display_x_y_data
0457 E288 LDI R24,0x28
0458 E091 LDI R25,1
0459 8399 STD Y+1,R25
045A 8388 STD Y+0,R24
045B E027 LDI R18,7
045C 2700 CLR R16
045D DD34 RCALL _Display_x_y_data
045E 9478 BSET 7
045F 9ABC SBI 0x17,4
0460 B787 IN R24,0x37
0461 6084 ORI R24,4
0462 BF87 OUT 0x37,R24
0463 EC08 LDI R16,0xC8
0464 E010 LDI R17,0
0465 DC2B RCALL _delay_us
0466 B789 IN R24,0x39
0467 6084 ORI R24,4
0468 BF89 OUT 0x39,R24
0469 C051 RJMP 0x04BB
046A 91800124 LDS R24,flag
046C 91900125 LDS R25,flag+1
046E 3081 CPI R24,1
046F E0E0 LDI R30,0
0470 079E CPC R25,R30
0471 F009 BEQ 0x0473
0472 C048 RJMP 0x04BB
0473 2422 CLR R2
0474 2433 CLR R3
0475 92300125 STS flag+1,R3
0477 92200124 STS flag,R2
0479 DD71 RCALL _LcmClearTXT
047A E28B LDI R24,0x2B
047B E091 LDI R25,1
047C 8399 STD Y+1,R25
047D 8388 STD Y+0,R24
047E 2722 CLR R18
047F 2700 CLR R16
0480 DD11 RCALL _Display_x_y_data
0481 E288 LDI R24,0x28
0482 E091 LDI R25,1
0483 8399 STD Y+1,R25
0484 8388 STD Y+0,R24
0485 E027 LDI R18,7
0486 2700 CLR R16
0487 DD0A RCALL _Display_x_y_data
0488 91000126 LDS R16,time_counter
048A 91100127 LDS R17,time_counter+1
048C DF80 RCALL _calculate_distance
048D 93100121 STS distance+1,R17
048F 93000120 STS distance,R16
0491 93300123 STS distance+3,R19
0493 93200122 STS distance+2,R18
0495 E382 LDI R24,0x32
0496 E091 LDI R25,1
0497 839B STD Y+3,R25
0498 838A STD Y+2,R24
0499 E082 LDI R24,2
049A E090 LDI R25,0
049B 8399 STD Y+1,R25
049C 8388 STD Y+0,R24
049D DD77 RCALL _Float_to_string
049E E382 LDI R24,0x32
049F E091 LDI R25,1
04A0 8399 STD Y+1,R25
04A1 8388 STD Y+0,R24
04A2 E023 LDI R18,3
04A3 2700 CLR R16
04A4 DCED RCALL _Display_x_y_data
04A5 2422 CLR R2
04A6 2433 CLR R3
04A7 92300127 STS time_counter+1,R3
04A9 92200126 STS time_counter,R2
04AB B38B IN R24,0x1B
04AC 6780 ORI R24,0x70
04AD BB8B OUT 0x1B,R24
04AE EF04 LDI R16,0xF4
04AF E011 LDI R17,1
04B0 DBF4 RCALL _delay_ms
04B1 B38B IN R24,0x1B
04B2 788F ANDI R24,0x8F
04B3 BB8B OUT 0x1B,R24
04B4 9ABC SBI 0x17,4
04B5 B787 IN R24,0x37
04B6 6084 ORI R24,4
04B7 BF87 OUT 0x37,R24
04B8 B789 IN R24,0x39
04B9 6084 ORI R24,4
04BA BF89 OUT 0x39,R24
04BB CFAE RJMP 0x046A
04BC 9624 ADIW R28,4
04BD 9508 RET
push_arg4:
04BE 933A ST R19,-Y
04BF 932A ST R18,-Y
push_arg2:
04C0 931A ST R17,-Y
04C1 930A ST R16,-Y
04C2 9508 RET
div32u:
04C3 94E8 BCLR 6
04C4 C001 RJMP 0x04C6
mod32u:
04C5 9468 BSET 6
04C6 D02F RCALL long_div_prolog
04C7 24CC CLR R12
04C8 C008 RJMP 0x04D1
div32s:
04C9 94E8 BCLR 6
04CA C001 RJMP 0x04CC
mod32s:
04CB 9468 BSET 6
04CC D029 RCALL long_div_prolog
04CD FD37 SBRC R19,7
04CE D053 RCALL neg_R16_R19
04CF FDB7 SBRC R27,7
04D0 D05A RCALL neg_R24_R27
04D1 2477 CLR R7
04D2 2488 CLR R8
04D3 2499 CLR R9
04D4 24AA CLR R10
04D5 24BB CLR R11
04D6 D041 RCALL tst_R16_R19
04D7 F0C1 BEQ 0x04F0
04D8 D044 RCALL tst_R24_R27
04D9 F0B1 BEQ 0x04F0
04DA E2E8 LDI R30,0x28
04DB 0F00 LSL R16
04DC 1F11 ROL R17
04DD 1F22 ROL R18
04DE 1F33 ROL R19
04DF 1C77 ROL R7
04E0 1C88 ROL R8
04E1 1C99 ROL R9
04E2 1CAA ROL R10
04E3 1CBB ROL R11
04E4 1688 CP R8,R24
04E5 0699 CPC R9,R25
04E6 06AA CPC R10,R26
04E7 06BB CPC R11,R27
04E8 F028 BCS 0x04EE
04E9 1A88 SUB R8,R24
04EA 0A99 SBC R9,R25
04EB 0AAA SBC R10,R26
04EC 0ABB SBC R11,R27
04ED 9503 INC R16
04EE 95EA DEC R30
04EF F759 BNE 0x04DB
04F0 F426 BRTC 0x04F5
04F1 2D08 MOV R16,R8
04F2 2D19 MOV R17,R9
04F3 2D2A MOV R18,R10
04F4 2D3B MOV R19,R11
04F5 C013 RJMP long_div_epilog
long_div_prolog:
04F6 927A ST R7,-Y
04F7 928A ST R8,-Y
04F8 929A ST R9,-Y
04F9 92AA ST R10,-Y
04FA 92BA ST R11,-Y
04FB 92CA ST R12,-Y
04FC 93EA ST R30,-Y
04FD 938A ST R24,-Y
04FE 939A ST R25,-Y
04FF 93AA ST R26,-Y
0500 93BA ST R27,-Y
0501 858B LDD R24,Y+11
0502 859C LDD R25,Y+12
0503 85AD LDD R26,Y+13
0504 85BE LDD R27,Y+14
0505 2EC3 MOV R12,R19
0506 F00E BRTS 0x0508
0507 26CB EOR R12,R27
0508 9508 RET
long_div_epilog:
0509 FCC7 SBRC R12,7
050A D017 RCALL neg_R16_R19
050B 91B9 LD R27,Y+
050C 91A9 LD R26,Y+
050D 9199 LD R25,Y+
050E 9189 LD R24,Y+
050F 91E9 LD R30,Y+
0510 90C9 LD R12,Y+
0511 90B9 LD R11,Y+
0512 90A9 LD R10,Y+
0513 9099 LD R9,Y+
0514 9089 LD R8,Y+
0515 9079 LD R7,Y+
0516 9624 ADIW R28,4
0517 9508 RET
tst_R16_R19:
0518 2FE0 MOV R30,R16
0519 2BE1 OR R30,R17
051A 2BE2 OR R30,R18
051B 2BE3 OR R30,R19
051C 9508 RET
tst_R24_R27:
051D 2FE8 MOV R30,R24
051E 2BE9 OR R30,R25
051F 2BEA OR R30,R26
0520 2BEB OR R30,R27
0521 9508 RET
neg_R16_R19:
0522 9500 COM R16
0523 9510 COM R17
0524 9520 COM R18
0525 9530 COM R19
0526 5F0F SUBI R16,0xFF
0527 4F1F SBCI R17,0xFF
0528 4F2F SBCI R18,0xFF
0529 4F3F SBCI R19,0xFF
052A 9508 RET
neg_R24_R27:
052B 9580 COM R24
052C 9590 COM R25
052D 95A0 COM R26
052E 95B0 COM R27
052F 5F8F SUBI R24,0xFF
0530 4F9F SBCI R25,0xFF
0531 4FAF SBCI R26,0xFF
0532 4FBF SBCI R27,0xFF
0533 9508 RET
pop_gset2:
0534 E0E2 LDI R30,2
0535 940C054C JMP pop
pop_gset3:
0537 E0E4 LDI R30,4
0538 940C054C JMP pop
pop_gset4:
053A E0E8 LDI R30,0x8
053B 940C054C JMP pop
pop_gset5:
053D 27EE CLR R30
053E 940C054C JMP pop
push_gset5:
0540 92FA ST R15,-Y
0541 92EA ST R14,-Y
push_gset4:
0542 92DA ST R13,-Y
0543 92CA ST R12,-Y
push_gset3:
0544 92BA ST R11,-Y
0545 92AA ST R10,-Y
push_gset2:
0546 937A ST R23,-Y
0547 936A ST R22,-Y
push_gset1:
0548 935A ST R21,-Y
0549 934A ST R20,-Y
054A 9508 RET
pop_gset1:
054B E0E1 LDI R30,1
pop:
054C 9149 LD R20,Y+
054D 9159 LD R21,Y+
054E FDE0 SBRC R30,0
054F 9508 RET
0550 9169 LD R22,Y+
0551 9179 LD R23,Y+
0552 FDE1 SBRC R30,1
0553 9508 RET
0554 90A9 LD R10,Y+
0555 90B9 LD R11,Y+
0556 FDE2 SBRC R30,2
0557 9508 RET
0558 90C9 LD R12,Y+
0559 90D9 LD R13,Y+
055A FDE3 SBRC R30,3
055B 9508 RET
055C 90E9 LD R14,Y+
055D 90F9 LD R15,Y+
055E 9508 RET
neg32:
055F 9500 COM R16
0560 9510 COM R17
0561 9520 COM R18
0562 9530 COM R19
0563 5F0F SUBI R16,0xFF
0564 4F1F SBCI R17,0xFF
0565 4F2F SBCI R18,0xFF
0566 4F3F SBCI R19,0xFF
0567 9508 RET
lpm32:
0568 93EA ST R30,-Y
0569 93FA ST R31,-Y
056A 920A ST R0,-Y
056B 2FE0 MOV R30,R16
056C 2FF1 MOV R31,R17
056D 95C8 LPM
056E 2D00 MOV R16,R0
056F 9631 ADIW R30,1
0570 95C8 LPM
0571 2D10 MOV R17,R0
0572 9631 ADIW R30,1
0573 95C8 LPM
0574 2D20 MOV R18,R0
0575 9631 ADIW R30,1
0576 95C8 LPM
0577 2D30 MOV R19,R0
0578 9009 LD R0,Y+
0579 91F9 LD R31,Y+
057A 91E9 LD R30,Y+
057B 9508 RET
fp2int:
057C 940E0709 CALL savfacc1
057E D014 RCALL FTOI
057F 2F02 MOV R16,R18
0580 2F13 MOV R17,R19
0581 FD87 SBRC R24,7
0582 C002 RJMP nojump1
0583 940C070C JMP restorefacc1
nojump1:
0585 9510 COM R17
0586 9501 NEG R16
0587 4F1F SBCI R17,0xFF
0588 940C070C JMP restorefacc1
fp2long:
058A 940E0709 CALL savfacc1
058C D008 RCALL FTOL
058D FF87 SBRS R24,7
058E C002 RJMP nojump2
058F 940E055F CALL neg32
nojump2:
0591 940C070C JMP restorefacc1
FTOI:
0593 E0BE LDI R27,0xE
0594 C001 RJMP 0x0596
FTOL:
0595 E1BE LDI R27,0x1E
0596 940E070F CALL unpackfacc1
0598 F069 BEQ 0x05A6
0599 1BB3 SUB R27,R19
059A F009 BEQ 0x059C
059B F472 BPL 0x05AA
059C 2388 TST R24
059D F022 BMI 0x05A2
059E E010 LDI R17,0
059F EA04 LDI R16,0xA4
05A0 940C0568 JMP lpm32
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -