tcp.lis
来自「AVR单片机系统开发经典实例部分源程序」· LIS 代码 · 共 1,332 行 · 第 1/5 页
LIS
1,332 行
03D2 9927 clr R25
03D4 0297 sbiw R24,2
03D6 0A84 ldd R0,y+10
03D8 1B84 ldd R1,y+11
03DA 080E add R0,R24
03DC 191E adc R1,R25
03DE 1B86 std y+11,R1
03E0 0A86 std y+10,R0
03E2 .dbline 255
03E2 L52:
03E2 .dbline 225
03E2 0A84 ldd R0,y+10
03E4 1B84 ldd R1,y+11
03E6 0A14 cp R0,R10
03E8 1B04 cpc R1,R11
03EA 0CF4 brge X4
03EC 6DCF xjmp L51
03EE X4:
03EE L53:
03EE .dbline 256
03EE ;
03EE ; i += (len - 2); // point to next option
03EE ; } //
03EE ; i = j;
03EE BB86 std y+11,R11
03F0 AA86 std y+10,R10
03F2 .dbline 258
03F2 ;
03F2 ; if (!SendDebugStr("\n")) return; //
03F2 00E0 ldi R16,<L56
03F4 10E0 ldi R17,>L56
03F6 0E940000 xcall _SendDebugStr
03FA 0023 tst R16
03FC 09F4 brne L78
03FE .dbline 258
03FE 1BC0 xjmp L1
0400 L78:
0400 .dbline 262
0400 ;
0400 ; // done
0400 ;
0400 ; if (!SendDebugRStr(tcp_str17)) return;
0400 00E0 ldi R16,<_tcp_str17
0402 10E0 ldi R17,>_tcp_str17
0404 0E940000 xcall _SendDebugRStr
0408 0023 tst R16
040A 09F4 brne L80
040C .dbline 262
040C 14C0 xjmp L1
040E L80:
040E .dbline 263
040E 2E88 ldd R2,y+22
0410 3F88 ldd R3,y+23
0412 0A84 ldd R0,y+10
0414 1B84 ldd R1,y+11
0416 2018 sub R2,R0
0418 3108 sbc R3,R1
041A 3982 std y+1,R3
041C 2882 std y+0,R2
041E 20E0 ldi R18,<L82
0420 30E0 ldi R19,>L82
0422 00E0 ldi R16,<_ScratchPad
0424 10E0 ldi R17,>_ScratchPad
0426 0E940000 xcall _sprintf
042A .dbline 264
042A 00E0 ldi R16,<_ScratchPad
042C 10E0 ldi R17,>_ScratchPad
042E 0E940000 xcall _SendDebugStr
0432 0023 tst R16
0434 01F4 brne L83
0436 .dbline 264
0436 L83:
0436 .dbline -2
0436 L1:
0436 2C96 adiw R28,12
0438 0E940000 xcall pop_gset5
043C 2296 adiw R28,2
043E .dbline 0 ; func end
043E 0895 ret
0440 .dbsym r w 14 s
0440 .dbsym l dw 6 l
0440 .dbsym r b 22 c
0440 .dbsym r j 10 I
0440 .dbsym l i 10 I
0440 .dbsym r len 22 c
0440 .dbsym r type 20 c
0440 .dbsym l TotalBytes 22 I
0440 .dbsym r HeaderIdx 20 I
0440 .dbend
0440 .dbfunc e TCP_DisplaySocketStage _TCP_DisplaySocketStage fV
0440 ; Socket -> R20,R21
.even
0440 _TCP_DisplaySocketStage::
0440 0E940000 xcall push_gset1
0444 A801 movw R20,R16
0446 .dbline -1
0446 .dbline 268
0446 ; sprintf((char*)ScratchPad, "%u\n", TotalBytes - i);
0446 ; if (!SendDebugStr((char*)ScratchPad)) return;
0446 ; }
0446 ;
0446 ; void TCP_DisplaySocketStage(T_TCP_Socket *Socket)
0446 ; { // display the tcp socket stage
0446 .dbline 269
0446 ; if (Socket == NULL) return;
0446 4030 cpi R20,0
0448 4507 cpc R20,R21
044A 09F4 brne L86
044C X5:
044C .dbline 269
044C 71C0 xjmp L85
044E L86:
044E .dbline 271
044E ;
044E ; if (!SendDebugRStr(tcp_str22)) return;
044E 00E0 ldi R16,<_tcp_str22
0450 10E0 ldi R17,>_tcp_str22
0452 0E940000 xcall _SendDebugRStr
0456 0023 tst R16
0458 09F4 brne L88
045A .dbline 271
045A 6AC0 xjmp L85
045C L88:
045C .dbline 272
045C ; switch (Socket->Stage)
045C FA01 movw R30,R20
045E 4081 ldd R20,z+0
0460 5527 clr R21
0462 4030 cpi R20,0
0464 4507 cpc R20,R21
0466 49F1 breq L93
0468 X6:
0468 4130 cpi R20,1
046A E0E0 ldi R30,0
046C 5E07 cpc R21,R30
046E 51F1 breq L94
0470 4230 cpi R20,2
0472 E0E0 ldi R30,0
0474 5E07 cpc R21,R30
0476 59F1 breq L95
0478 4330 cpi R20,3
047A E0E0 ldi R30,0
047C 5E07 cpc R21,R30
047E 61F1 breq L96
0480 4430 cpi R20,4
0482 E0E0 ldi R30,0
0484 5E07 cpc R21,R30
0486 69F1 breq L97
0488 4530 cpi R20,5
048A E0E0 ldi R30,0
048C 5E07 cpc R21,R30
048E 71F1 breq L98
0490 4630 cpi R20,6
0492 E0E0 ldi R30,0
0494 5E07 cpc R21,R30
0496 79F1 breq L99
0498 4730 cpi R20,7
049A E0E0 ldi R30,0
049C 5E07 cpc R21,R30
049E 81F1 breq L100
04A0 4830 cpi R20,8
04A2 E0E0 ldi R30,0
04A4 5E07 cpc R21,R30
04A6 89F1 breq L101
04A8 4930 cpi R20,9
04AA E0E0 ldi R30,0
04AC 5E07 cpc R21,R30
04AE 91F1 breq L102
04B0 4A30 cpi R20,10
04B2 E0E0 ldi R30,0
04B4 5E07 cpc R21,R30
04B6 99F1 breq L103
04B8 37C0 xjmp L90
04BA X7:
04BA .dbline 273
04BA ; {
04BA L93:
04BA .dbline 274
04BA ; case TCP_CLOSED : SendDebugRStr(tcp_str23);
04BA 00E0 ldi R16,<_tcp_str23
04BC 10E0 ldi R17,>_tcp_str23
04BE 0E940000 xcall _SendDebugRStr
04C2 .dbline 275
04C2 ; break;
04C2 36C0 xjmp L91
04C4 L94:
04C4 .dbline 276
04C4 ; case TCP_LISTEN : SendDebugRStr(tcp_str24);
04C4 00E0 ldi R16,<_tcp_str24
04C6 10E0 ldi R17,>_tcp_str24
04C8 0E940000 xcall _SendDebugRStr
04CC .dbline 277
04CC ; break;
04CC 31C0 xjmp L91
04CE L95:
04CE .dbline 278
04CE ; case TCP_SYN_SENT : SendDebugRStr(tcp_str25);
04CE 00E0 ldi R16,<_tcp_str25
04D0 10E0 ldi R17,>_tcp_str25
04D2 0E940000 xcall _SendDebugRStr
04D6 .dbline 279
04D6 ; break;
04D6 2CC0 xjmp L91
04D8 L96:
04D8 .dbline 280
04D8 ; case TCP_SYN_RECEIVED : SendDebugRStr(tcp_str26);
04D8 00E0 ldi R16,<_tcp_str26
04DA 10E0 ldi R17,>_tcp_str26
04DC 0E940000 xcall _SendDebugRStr
04E0 .dbline 281
04E0 ; break;
04E0 27C0 xjmp L91
04E2 L97:
04E2 .dbline 282
04E2 ; case TCP_ESTABLISHED : SendDebugRStr(tcp_str27);
04E2 00E0 ldi R16,<_tcp_str27
04E4 10E0 ldi R17,>_tcp_str27
04E6 0E940000 xcall _SendDebugRStr
04EA .dbline 283
04EA ; break;
04EA 22C0 xjmp L91
04EC L98:
04EC .dbline 284
04EC ; case TCP_FIN_WAIT_1 : SendDebugRStr(tcp_str28);
04EC 00E0 ldi R16,<_tcp_str28
04EE 10E0 ldi R17,>_tcp_str28
04F0 0E940000 xcall _SendDebugRStr
04F4 .dbline 285
04F4 ; break;
04F4 1DC0 xjmp L91
04F6 L99:
04F6 .dbline 286
04F6 ; case TCP_FIN_WAIT_2 : SendDebugRStr(tcp_str29);
04F6 00E0 ldi R16,<_tcp_str29
04F8 10E0 ldi R17,>_tcp_str29
04FA 0E940000 xcall _SendDebugRStr
04FE .dbline 287
04FE ; break;
04FE 18C0 xjmp L91
0500 L100:
0500 .dbline 288
0500 ; case TCP_CLOSE_WAIT : SendDebugRStr(tcp_str30);
0500 00E0 ldi R16,<_tcp_str30
0502 10E0 ldi R17,>_tcp_str30
0504 0E940000 xcall _SendDebugRStr
0508 .dbline 289
0508 ; break;
0508 13C0 xjmp L91
050A L101:
050A .dbline 290
050A ; case TCP_CLOSING : SendDebugRStr(tcp_str31);
050A 00E0 ldi R16,<_tcp_str31
050C 10E0 ldi R17,>_tcp_str31
050E 0E940000 xcall _SendDebugRStr
0512 .dbline 291
0512 ; break;
0512 0EC0 xjmp L91
0514 L102:
0514 .dbline 292
0514 ; case TCP_LAST_ACK : SendDebugRStr(tcp_str32);
0514 00E0 ldi R16,<_tcp_str32
0516 10E0 ldi R17,>_tcp_str32
0518 0E940000 xcall _SendDebugRStr
051C .dblin
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?