📄 24c01.lst
字号:
0395 9518 RETI
_uart0_tx_isr:
RTbuf --> R20
0396 922A ST R2,-Y
0397 923A ST R3,-Y
0398 930A ST R16,-Y
0399 931A ST R17,-Y
039A 938A ST R24,-Y
039B 939A ST R25,-Y
039C 93EA ST R30,-Y
039D 93FA ST R31,-Y
039E B62F IN R2,0x3F
039F 922A ST R2,-Y
03A0 940E04B0 CALL push_gset1
(0437) //SEI();
(0438) }
(0439)
(0440) #pragma interrupt_handler uart0_tx_isr: iv_USART0_TXC
(0441) void uart0_tx_isr(void)
(0442) {
(0443) //CLI();
(0444) siocirqueue *RTbuf;
(0445) //WDR(); //喂狗
(0446) RTbuf=&RTbuf_UART0;
03A2 E34E LDI R20,0x3E
03A3 E051 LDI R21,1
(0447) if (RTbuf->T_count>0){
03A4 2422 CLR R2
03A5 01FA MOVW R30,R20
03A6 59E6 SUBI R30,0x96
03A7 4FFF SBCI R31,0xFF
03A8 8030 LDD R3,Z+0
03A9 1423 CP R2,R3
03AA F008 BCS 0x03AC
03AB C020 RJMP 0x03CC
(0448) UDR0=RTbuf->T_buf[RTbuf->T_front];
03AC 01CA MOVW R24,R20
03AD 5985 SUBI R24,0x95
03AE 4F9F SBCI R25,0xFF
03AF 01FA MOVW R30,R20
03B0 59E8 SUBI R30,0x98
03B1 4FFF SBCI R31,0xFF
03B2 81E0 LDD R30,Z+0
03B3 27FF CLR R31
03B4 0FE8 ADD R30,R24
03B5 1FF9 ADC R31,R25
03B6 8020 LDD R2,Z+0
03B7 B82C OUT 0x0C,R2
(0449) RTbuf->T_count--;
03B8 01CA MOVW R24,R20
03B9 5986 SUBI R24,0x96
03BA 4F9F SBCI R25,0xFF
03BB 01FC MOVW R30,R24
03BC 8180 LDD R24,Z+0
03BD 5081 SUBI R24,1
03BE 8380 STD Z+0,R24
(0450) RTbuf->T_front=(RTbuf->T_front+1) % TBUF_SIZE;
03BF 01CA MOVW R24,R20
03C0 5988 SUBI R24,0x98
03C1 4F9F SBCI R25,0xFF
03C2 011C MOVW R2,R24
03C3 E614 LDI R17,0x64
03C4 01FC MOVW R30,R24
03C5 8100 LDD R16,Z+0
03C6 5F0F SUBI R16,0xFF
03C7 940E0454 CALL mod8u
03C9 01F1 MOVW R30,R2
03CA 8300 STD Z+0,R16
(0451) }
03CB C005 RJMP 0x03D1
(0452) else RTbuf->T_disabled=1;
FILE: <library>
03CC E081 LDI R24,1
03CD 01FA MOVW R30,R20
03CE 53E1 SUBI R30,0x31
03CF 4FFF SBCI R31,0xFF
03D0 8380 STD Z+0,R24
03D1 940E04B3 CALL pop_gset1
03D3 9029 LD R2,Y+
03D4 BE2F OUT 0x3F,R2
03D5 91F9 LD R31,Y+
03D6 91E9 LD R30,Y+
03D7 9199 LD R25,Y+
03D8 9189 LD R24,Y+
03D9 9119 LD R17,Y+
03DA 9109 LD R16,Y+
03DB 9039 LD R3,Y+
03DC 9029 LD R2,Y+
03DD 9518 RETI
push_arg4:
03DE 933A ST R19,-Y
03DF 932A ST R18,-Y
push_arg2:
03E0 931A ST R17,-Y
03E1 930A ST R16,-Y
03E2 9508 RET
div32u:
03E3 94E8 BCLR 6
03E4 C001 RJMP 0x03E6
mod32u:
03E5 9468 BSET 6
03E6 D02F RCALL long_div_prolog
03E7 24CC CLR R12
03E8 C008 RJMP 0x03F1
div32s:
03E9 94E8 BCLR 6
03EA C001 RJMP 0x03EC
mod32s:
03EB 9468 BSET 6
03EC D029 RCALL long_div_prolog
03ED FD37 SBRC R19,7
03EE D053 RCALL neg_R16_R19
03EF FDB7 SBRC R27,7
03F0 D05A RCALL neg_R24_R27
03F1 2477 CLR R7
03F2 2488 CLR R8
03F3 2499 CLR R9
03F4 24AA CLR R10
03F5 24BB CLR R11
03F6 D041 RCALL tst_R16_R19
03F7 F0C1 BEQ 0x0410
03F8 D044 RCALL tst_R24_R27
03F9 F0B1 BEQ 0x0410
03FA E2E8 LDI R30,0x28
03FB 0F00 LSL R16
03FC 1F11 ROL R17
03FD 1F22 ROL R18
03FE 1F33 ROL R19
03FF 1C77 ROL R7
0400 1C88 ROL R8
0401 1C99 ROL R9
0402 1CAA ROL R10
0403 1CBB ROL R11
0404 1688 CP R8,R24
0405 0699 CPC R9,R25
0406 06AA CPC R10,R26
0407 06BB CPC R11,R27
0408 F028 BCS 0x040E
0409 1A88 SUB R8,R24
040A 0A99 SBC R9,R25
040B 0AAA SBC R10,R26
040C 0ABB SBC R11,R27
040D 9503 INC R16
040E 95EA DEC R30
040F F759 BNE 0x03FB
0410 F426 BRTC 0x0415
0411 2D08 MOV R16,R8
0412 2D19 MOV R17,R9
0413 2D2A MOV R18,R10
0414 2D3B MOV R19,R11
0415 C013 RJMP long_div_epilog
long_div_prolog:
0416 927A ST R7,-Y
0417 928A ST R8,-Y
0418 929A ST R9,-Y
0419 92AA ST R10,-Y
041A 92BA ST R11,-Y
041B 92CA ST R12,-Y
041C 93EA ST R30,-Y
041D 938A ST R24,-Y
041E 939A ST R25,-Y
041F 93AA ST R26,-Y
0420 93BA ST R27,-Y
0421 858B LDD R24,Y+11
0422 859C LDD R25,Y+12
0423 85AD LDD R26,Y+13
0424 85BE LDD R27,Y+14
0425 2EC3 MOV R12,R19
0426 F00E BRTS 0x0428
0427 26CB EOR R12,R27
0428 9508 RET
long_div_epilog:
0429 FCC7 SBRC R12,7
042A D017 RCALL neg_R16_R19
042B 91B9 LD R27,Y+
042C 91A9 LD R26,Y+
042D 9199 LD R25,Y+
042E 9189 LD R24,Y+
042F 91E9 LD R30,Y+
0430 90C9 LD R12,Y+
0431 90B9 LD R11,Y+
0432 90A9 LD R10,Y+
0433 9099 LD R9,Y+
0434 9089 LD R8,Y+
0435 9079 LD R7,Y+
0436 9624 ADIW R28,4
0437 9508 RET
tst_R16_R19:
0438 2FE0 MOV R30,R16
0439 2BE1 OR R30,R17
043A 2BE2 OR R30,R18
043B 2BE3 OR R30,R19
043C 9508 RET
tst_R24_R27:
043D 2FE8 MOV R30,R24
043E 2BE9 OR R30,R25
043F 2BEA OR R30,R26
0440 2BEB OR R30,R27
0441 9508 RET
neg_R16_R19:
0442 9500 COM R16
0443 9510 COM R17
0444 9520 COM R18
0445 9530 COM R19
0446 5F0F SUBI R16,0xFF
0447 4F1F SBCI R17,0xFF
0448 4F2F SBCI R18,0xFF
0449 4F3F SBCI R19,0xFF
044A 9508 RET
neg_R24_R27:
044B 9580 COM R24
044C 9590 COM R25
044D 95A0 COM R26
044E 95B0 COM R27
044F 5F8F SUBI R24,0xFF
0450 4F9F SBCI R25,0xFF
0451 4FAF SBCI R26,0xFF
0452 4FBF SBCI R27,0xFF
0453 9508 RET
mod8u:
0454 9468 BSET 6
0455 C001 RJMP xdiv8u
div8u:
0456 94E8 BCLR 6
xdiv8u:
0457 932A ST R18,-Y
0458 92FA ST R15,-Y
0459 92EA ST R14,-Y
045A 24FF CLR R15
045B 24EE CLR R14
045C E120 LDI R18,0x10
045D 0F00 LSL R16
045E 1CFF ROL R15
045F 1CEE ROL R14
0460 16E1 CP R14,R17
0461 F010 BCS 0x0464
0462 1AE1 SUB R14,R17
0463 9503 INC R16
0464 952A DEC R18
0465 F7B9 BNE 0x045D
0466 F40E BRTC 0x0468
0467 2D0E MOV R16,R14
0468 90E9 LD R14,Y+
0469 90F9 LD R15,Y+
046A 9129 LD R18,Y+
046B 9508 RET
empy32u:
empy32s:
046C 940E04C7 CALL long_prolog
046E 927F PUSH R7
046F 940E04E0 CALL tstzero1
0471 F139 BEQ 0x0499
0472 2477 CLR R7
0473 940E04E6 CALL tstzero2
0475 F419 BNE 0x0479
0476 018C MOVW R16,R24
0477 019D MOVW R18,R26
0478 C020 RJMP 0x0499
0479 9F08 MUL R16,R24
047A 2CB0 MOV R11,R0
047B 2CA1 MOV R10,R1
047C 9F28 MUL R18,R24
047D 2C90 MOV R9,R0
047E 2C81 MOV R8,R1
047F 9F18 MUL R17,R24
0480 0CA0 ADD R10,R0
0481 1C91 ADC R9,R1
0482 1C87 ADC R8,R7
0483 9F09 MUL R16,R25
0484 0CA0 ADD R10,R0
0485 1C91 ADC R9,R1
0486 1C87 ADC R8,R7
0487 9F19 MUL R17,R25
0488 0C90 ADD R9,R0
0489 1C81 ADC R8,R1
048A 9F0A MUL R16,R26
048B 0C90 ADD R9,R0
048C 1C81 ADC R8,R1
048D 9F38 MUL R19,R24
048E 0C80 ADD R8,R0
048F 9F29 MUL R18,R25
0490 0C80 ADD R8,R0
0491 9F1A MUL R17,R26
0492 0C80 ADD R8,R0
0493 9F0B MUL R16,R27
0494 0C80 ADD R8,R0
0495 2D0B MOV R16,R11
0496 2D1A MOV R17,R10
0497 2D29 MOV R18,R9
0498 2D38 MOV R19,R8
0499 907F POP R7
049A 940C04D5 JMP long_epilog
pop_gset2:
049C E0E2 LDI R30,2
049D 940C04B4 JMP pop
pop_gset3:
049F E0E4 LDI R30,4
04A0 940C04B4 JMP pop
pop_gset4:
04A2 E0E8 LDI R30,0x8
04A3 940C04B4 JMP pop
pop_gset5:
04A5 27EE CLR R30
04A6 940C04B4 JMP pop
push_gset5:
04A8 92FA ST R15,-Y
04A9 92EA ST R14,-Y
push_gset4:
04AA 92DA ST R13,-Y
04AB 92CA ST R12,-Y
push_gset3:
04AC 92BA ST R11,-Y
04AD 92AA ST R10,-Y
push_gset2:
04AE 937A ST R23,-Y
04AF 936A ST R22,-Y
push_gset1:
04B0 935A ST R21,-Y
04B1 934A ST R20,-Y
04B2 9508 RET
pop_gset1:
04B3 E0E1 LDI R30,1
pop:
04B4 9149 LD R20,Y+
04B5 9159 LD R21,Y+
04B6 FDE0 SBRC R30,0
04B7 9508 RET
04B8 9169 LD R22,Y+
04B9 9179 LD R23,Y+
04BA FDE1 SBRC R30,1
04BB 9508 RET
04BC 90A9 LD R10,Y+
04BD 90B9 LD R11,Y+
04BE FDE2 SBRC R30,2
04BF 9508 RET
04C0 90C9 LD R12,Y+
04C1 90D9 LD R13,Y+
04C2 FDE3 SBRC R30,3
04C3 9508 RET
04C4 90E9 LD R14,Y+
04C5 90F9 LD R15,Y+
04C6 9508 RET
long_prolog:
04C7 928A ST R8,-Y
04C8 929A ST R9,-Y
04C9 92AA ST R10,-Y
04CA 92BA ST R11,-Y
04CB 93EA ST R30,-Y
04CC 938A ST R24,-Y
04CD 939A ST R25,-Y
04CE 93AA ST R26,-Y
04CF 93BA ST R27,-Y
04D0 8589 LDD R24,Y+9
04D1 859A LDD R25,Y+10
04D2 85AB LDD R26,Y+11
04D3 85BC LDD R27,Y+12
04D4 9508 RET
long_epilog:
04D5 91B9 LD R27,Y+
04D6 91A9 LD R26,Y+
04D7 9199 LD R25,Y+
04D8 9189 LD R24,Y+
04D9 91E9 LD R30,Y+
04DA 90B9 LD R11,Y+
04DB 90A9 LD R10,Y+
04DC 9099 LD R9,Y+
04DD 9089 LD R8,Y+
04DE 9624 ADIW R28,4
04DF 9508 RET
tstzero1:
04E0 27EE CLR R30
04E1 2BE0 OR R30,R16
04E2 2BE1 OR R30,R17
04E3 2BE2 OR R30,R18
04E4 2BE3 OR R30,R19
04E5 9508 RET
tstzero2:
04E6 27EE CLR R30
04E7 2BE8 OR R30,R24
04E8 2BE9 OR R30,R25
04E9 2BEA OR R30,R26
04EA 2BEB OR R30,R27
04EB 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -