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