tcp.lis

来自「AVR单片机系统开发经典实例部分源程序」· LIS 代码 · 共 1,332 行 · 第 1/5 页

LIS
1,332
字号
 00A8 0683              std z+6,R16
 00AA 1783              std z+7,R17
 00AC 2087              std z+8,R18
 00AE 3187              std z+9,R19
 00B0                   .dbline 185
 00B0           ;       sprintf((char*)ScratchPad, "%lu", dw);
 00B0 FE01              movw R30,R28
 00B2 2680              ldd R2,z+6
 00B4 3780              ldd R3,z+7
 00B6 4084              ldd R4,z+8
 00B8 5184              ldd R5,z+9
 00BA 2882              std y+0,R2
 00BC 3982              std y+1,R3
 00BE 4A82              std y+2,R4
 00C0 5B82              std y+3,R5
 00C2 20E0              ldi R18,<L13
 00C4 30E0              ldi R19,>L13
 00C6 00E0              ldi R16,<_ScratchPad
 00C8 10E0              ldi R17,>_ScratchPad
 00CA 0E940000          xcall _sprintf
 00CE                   .dbline 186
 00CE           ;       if (!SendDebugStr((char*)ScratchPad)) return;
 00CE 00E0              ldi R16,<_ScratchPad
 00D0 10E0              ldi R17,>_ScratchPad
 00D2 0E940000          xcall _SendDebugStr
 00D6 0023              tst R16
 00D8 09F4              brne L14
 00DA                   .dbline 186
 00DA ADC1              xjmp L1
 00DC           L14:
 00DC                   .dbline 188
 00DC           ; 
 00DC           ;       if (!SendDebugRStr(tcp_str4)) return;
 00DC 00E0              ldi R16,<_tcp_str4
 00DE 10E0              ldi R17,>_tcp_str4
 00E0 0E940000          xcall _SendDebugRStr
 00E4 0023              tst R16
 00E6 09F4              brne L16
 00E8                   .dbline 188
 00E8 A6C1              xjmp L1
 00EA           L16:
 00EA                   .dbline 189
 00EA           ;       dw = ntohl(TCP_Header->AckNum);
 00EA E0910400          lds R30,_TCP_Header
 00EE F0910500          lds R31,_TCP_Header+1
 00F2 0085              ldd R16,z+8
 00F4 1185              ldd R17,z+9
 00F6 2285              ldd R18,z+10
 00F8 3385              ldd R19,z+11
 00FA 0E940000          xcall _ntohl
 00FE FE01              movw R30,R28
 0100 0683              std z+6,R16
 0102 1783              std z+7,R17
 0104 2087              std z+8,R18
 0106 3187              std z+9,R19
 0108                   .dbline 190
 0108           ;       sprintf((char*)ScratchPad, "%lu", dw);
 0108 FE01              movw R30,R28
 010A 2680              ldd R2,z+6
 010C 3780              ldd R3,z+7
 010E 4084              ldd R4,z+8
 0110 5184              ldd R5,z+9
 0112 2882              std y+0,R2
 0114 3982              std y+1,R3
 0116 4A82              std y+2,R4
 0118 5B82              std y+3,R5
 011A 20E0              ldi R18,<L13
 011C 30E0              ldi R19,>L13
 011E 00E0              ldi R16,<_ScratchPad
 0120 10E0              ldi R17,>_ScratchPad
 0122 0E940000          xcall _sprintf
 0126                   .dbline 191
 0126           ;       if (!SendDebugStr((char*)ScratchPad)) return;
 0126 00E0              ldi R16,<_ScratchPad
 0128 10E0              ldi R17,>_ScratchPad
 012A 0E940000          xcall _SendDebugStr
 012E 0023              tst R16
 0130 09F4              brne L18
 0132                   .dbline 191
 0132 81C1              xjmp L1
 0134           L18:
 0134                   .dbline 193
 0134           ; 
 0134           ;       if (!SendDebugRStr(tcp_str5)) return;
 0134 00E0              ldi R16,<_tcp_str5
 0136 10E0              ldi R17,>_tcp_str5
 0138 0E940000          xcall _SendDebugRStr
 013C 0023              tst R16
 013E 09F4              brne L20
 0140                   .dbline 193
 0140 7AC1              xjmp L1
 0142           L20:
 0142                   .dbline 194
 0142           ;       sprintf((char*)ScratchPad, "%u", TCP_Header->DataOffset >> 4);
 0142 E0910400          lds R30,_TCP_Header
 0146 F0910500          lds R31,_TCP_Header+1
 014A 2484              ldd R2,z+12
 014C 3324              clr R3
 014E 3594              asr R3
 0150 2794              ror R2
 0152 3594              asr R3
 0154 2794              ror R2
 0156 3594              asr R3
 0158 2794              ror R2
 015A 3594              asr R3
 015C 2794              ror R2
 015E 3982              std y+1,R3
 0160 2882              std y+0,R2
 0162 20E0              ldi R18,<L4
 0164 30E0              ldi R19,>L4
 0166 00E0              ldi R16,<_ScratchPad
 0168 10E0              ldi R17,>_ScratchPad
 016A 0E940000          xcall _sprintf
 016E                   .dbline 195
 016E           ;       if (!SendDebugStr((char*)ScratchPad)) return;
 016E 00E0              ldi R16,<_ScratchPad
 0170 10E0              ldi R17,>_ScratchPad
 0172 0E940000          xcall _SendDebugStr
 0176 0023              tst R16
 0178 09F4              brne L22
 017A                   .dbline 195
 017A 5DC1              xjmp L1
 017C           L22:
 017C                   .dbline 197
 017C           ; 
 017C           ;       b = TCP_Header->ControlBits;
 017C E0910400          lds R30,_TCP_Header
 0180 F0910500          lds R31,_TCP_Header+1
 0184 6585              ldd R22,z+13
 0186                   .dbline 198
 0186           ;       if (!SendDebugRStr(tcp_str6)) return;
 0186 00E0              ldi R16,<_tcp_str6
 0188 10E0              ldi R17,>_tcp_str6
 018A 0E940000          xcall _SendDebugRStr
 018E 0023              tst R16
 0190 09F4              brne L24
 0192                   .dbline 198
 0192 51C1              xjmp L1
 0194           L24:
 0194                   .dbline 199
 0194           ;       if (b & TCP_SYN) SendDebugRStr(tcp_str11);
 0194 61FF              sbrs R22,1
 0196 04C0              rjmp L26
 0198                   .dbline 199
 0198 00E0              ldi R16,<_tcp_str11
 019A 10E0              ldi R17,>_tcp_str11
 019C 0E940000          xcall _SendDebugRStr
 01A0           L26:
 01A0                   .dbline 200
 01A0           ;       if (b & TCP_FIN) SendDebugRStr(tcp_str12);
 01A0 60FF              sbrs R22,0
 01A2 04C0              rjmp L28
 01A4                   .dbline 200
 01A4 00E0              ldi R16,<_tcp_str12
 01A6 10E0              ldi R17,>_tcp_str12
 01A8 0E940000          xcall _SendDebugRStr
 01AC           L28:
 01AC                   .dbline 201
 01AC           ;       if (b & TCP_RST) SendDebugRStr(tcp_str10);
 01AC 62FF              sbrs R22,2
 01AE 04C0              rjmp L30
 01B0                   .dbline 201
 01B0 00E0              ldi R16,<_tcp_str10
 01B2 10E0              ldi R17,>_tcp_str10
 01B4 0E940000          xcall _SendDebugRStr
 01B8           L30:
 01B8                   .dbline 202
 01B8           ;       if (b & TCP_URG) SendDebugRStr(tcp_str7);
 01B8 65FF              sbrs R22,5
 01BA 04C0              rjmp L32
 01BC                   .dbline 202
 01BC 00E0              ldi R16,<_tcp_str7
 01BE 10E0              ldi R17,>_tcp_str7
 01C0 0E940000          xcall _SendDebugRStr
 01C4           L32:
 01C4                   .dbline 203
 01C4           ;       if (b & TCP_ACK) SendDebugRStr(tcp_str8);
 01C4 64FF              sbrs R22,4
 01C6 04C0              rjmp L34
 01C8                   .dbline 203
 01C8 00E0              ldi R16,<_tcp_str8
 01CA 10E0              ldi R17,>_tcp_str8
 01CC 0E940000          xcall _SendDebugRStr
 01D0           L34:
 01D0                   .dbline 204
 01D0           ;       if (b & TCP_PSH) SendDebugRStr(tcp_str9);
 01D0 63FF              sbrs R22,3
 01D2 04C0              rjmp L36
 01D4                   .dbline 204
 01D4 00E0              ldi R16,<_tcp_str9
 01D6 10E0              ldi R17,>_tcp_str9
 01D8 0E940000          xcall _SendDebugRStr
 01DC           L36:
 01DC                   .dbline 206
 01DC           ; 
 01DC           ;       if (!SendDebugRStr(tcp_str13)) return;
 01DC 00E0              ldi R16,<_tcp_str13
 01DE 10E0              ldi R17,>_tcp_str13
 01E0 0E940000          xcall _SendDebugRStr
 01E4 0023              tst R16
 01E6 09F4              brne L38
 01E8                   .dbline 206
 01E8 26C1              xjmp L1
 01EA           L38:
 01EA                   .dbline 207
 01EA           ;       sprintf((char*)ScratchPad, "%u", ntohs(TCP_Header->WindowSize));
 01EA E0910400          lds R30,_TCP_Header
 01EE F0910500          lds R31,_TCP_Header+1
 01F2 0685              ldd R16,z+14
 01F4 1785              ldd R17,z+15
 01F6 0E940000          xcall _ntohs
 01FA 1983              std y+1,R17
 01FC 0883              std y+0,R16
 01FE 20E0              ldi R18,<L4
 0200 30E0              ldi R19,>L4
 0202 00E0              ldi R16,<_ScratchPad
 0204 10E0              ldi R17,>_ScratchPad
 0206 0E940000          xcall _sprintf
 020A                   .dbline 208
 020A           ;       if (!SendDebugStr((char*)ScratchPad)) return;
 020A 00E0              ldi R16,<_ScratchPad
 020C 10E0              ldi R17,>_ScratchPad
 020E 0E940000          xcall _SendDebugStr
 0212 0023              tst R16
 0214 09F4              brne L40
 0216                   .dbline 208
 0216 0FC1              xjmp L1
 0218           L40:
 0218                   .dbline 210
 0218           ; 
 0218           ;       if (!SendDebugRStr(tcp_str14)) return;
 0218 00E0              ldi R16,<_tcp_str14
 021A 10E0              ldi R17,>_tcp_str14
 021C 0E940000          xcall _SendDebugRStr
 0220 0023              tst R16
 0222 09F4              brne L42
 0224                   .dbline 210
 0224 08C1              xjmp L1
 0226           L42:
 0226                   .dbline 211
 0226           ;       sprintf((char*)ScratchPad, "%04x", ntohs(TCP_Header->Checksum));
 0226 E0910400          lds R30,_TCP_Header
 022A F0910500          lds R31,_TCP_Header+1
 022E 0089              ldd R16,z+16
 0230 1189              ldd R17,z+17
 0232 0E940000          xcall _ntohs
 0236 1983              std y+1,R17
 0238 0883              std y+0,R16
 023A 20E0              ldi R18,<L44
 023C 30E0              ldi R19,>L44
 023E 00E0              ldi R16,<_ScratchPad
 0240 10E0              ldi R17,>_ScratchPad
 0242 0E940000          xcall _sprintf
 0246                   .dbline 212
 0246           ;       if (!SendDebugStr((char*)ScratchPad)) return;
 0246 00E0              ldi R16,<_ScratchPad
 0248 10E0              ldi R17,>_ScratchPad
 024A 0E940000          xcall _SendDebugStr
 024E 0023              tst R16
 0250 09F4              brne L45
 0252                   .dbline 212
 0252 F1C0              xjmp L1
 0254           L45:
 0254                   .dbline 214
 0254           ; 
 0254           ;       if (!SendDebugRStr(tcp_str15)) return;
 0254 00E0              ldi R16,<_tcp_str15

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?