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 + -
显示快捷键?