📄 icmp.lst
字号:
179 =2 sfr S1CON = 0xD8;
180 =2
181 =2
182 =2
183 =2 sbit CR2 = S1CON^7;
184 =2 sbit ENS1 = S1CON^6;
185 =2 sbit STA = S1CON^5;
186 =2 sbit STO = S1CON^4;
187 =2 sbit SI = S1CON^3;
188 =2 sbit AA = S1CON^2;
189 =2 sbit CR1 = S1CON^1;
190 =2 sbit CR0 = S1CON^0;
191 =2
192 =2
193 =2
194 =2 sfr SBUF = 0x99;
195 =2
196 =2
197 =2
198 =2 /* IEN0 */
199 =2 sfr IE = 0xA8;
200 =2 sbit EA = IE^7;
201 =2 sbit EC = IE^6;
202 =2 sbit ES1 = IE^5;
C51 COMPILER V7.06 ICMP 07/10/2003 14:34:41 PAGE 10
203 =2 sbit ES0 = IE^4;
204 =2 sbit ET1 = IE^3;
205 =2 sbit EX1 = IE^2;
206 =2 sbit ET0 = IE^1;
207 =2 sbit EX0 = IE^0;
208 =2
209 =2 sbit ea = 0xAF;
210 =2 sbit ec = 0xae;
211 =2 sbit es1 = 0xad;
212 =2 sbit es0 = 0xAC;
213 =2 sbit et1 = 0xAB;
214 =2 sbit ex1 = 0xAA;
215 =2 sbit et0 = 0xA9;
216 =2 sbit ex0 = 0xA8;
217 =2
218 =2 sfr IEN1 = 0xE8;
219 =2
220 =2 sbit ET2 = IEN1^0;
221 =2 sbit et2 = IEN1^0;
222 =2 sfr SADDR = 0xA9;
223 =2
224 =2 sfr IPH = 0xB7;
225 =2
226 =2 sfr SADEN = 0xB9;
227 =2
228 =2 /* IP */
229 =2 sfr IP = 0xB8;
230 =2
231 =2
232 =2 sbit ppc = 0xBE;
233 =2 sbit pt2h = 0xBD;
234 =2 sbit psh = 0xBC;
235 =2 sbit pt1h = 0xBB;
236 =2 sbit px1h = 0xBA;
237 =2 sbit pt0h = 0xB9;
238 =2 sbit px0h = 0xB8;
239 =2
240 =2 sbit PT2 = IP^7;
241 =2 sbit PPC = IP^6;
242 =2 sbit PS1 = IP^5;
243 =2 sbit PS0 = IP^4;
244 =2 sbit PT1 = IP^3;
245 =2 sbit PX1 = IP^2;
246 =2 sbit PT0 = IP^1;
247 =2 sbit PX0 = IP^0;
248 =2 sbit pt2 = IP^7;
249 =2 //sbit ppc = IP^6;
250 =2 sbit ps1 = IP^5;
251 =2 sbit ps0 = IP^4;
252 =2 sbit pt1 = IP^3;
253 =2 sbit px1 = IP^2;
254 =2 sbit pt0 = IP^1;
255 =2 sbit px0 = IP^0;
256 =2
257 =2 /* T2CON */
258 =2 sfr T2CON = 0xC8;
259 =2 sbit TF2 = T2CON^7;
260 =2 sbit EXF2 = T2CON^6;
261 =2 sbit RCLK = T2CON^5;
262 =2 sbit TCLK = T2CON^4;
263 =2 sbit EXEN2 = T2CON^3;
264 =2 sbit TR2 = T2CON^2;
C51 COMPILER V7.06 ICMP 07/10/2003 14:34:41 PAGE 11
265 =2 sbit CT2 = T2CON^1;
266 =2 sbit CP = T2CON^0;
267 =2 sbit tf2 = T2CON^7;
268 =2 sbit exf2 = T2CON^6;
269 =2 sbit rclk = T2CON^5;
270 =2 sbit tclk = T2CON^4;
271 =2 sbit exen2 = T2CON^3;
272 =2 sbit tr2 = T2CON^2;
273 =2 sbit ct2 = T2CON^1;
274 =2 sbit cp = T2CON^0;
275 =2
276 =2 sbit T2IP = 0xCE;
277 =2 sbit T2IE = 0xCD;
278 =2 sbit T2RSE = 0xCC;
279 =2 sbit BGEN = 0xCB;
280 =2
281 =2 sbit C_T2 = 0xC9;
282 =2 sbit CP_RL2= 0xC8;
283 =2
284 =2 //sbit tf2 = 0xCF;
285 =2 sbit t2ip = 0xCE;
286 =2 sbit t2ie = 0xCD;
287 =2 sbit t2rse = 0xCC;
288 =2 sbit bgen = 0xCB;
289 =2 //sbit tr2 = 0xCA;
290 =2 sbit c_t2 = 0xC9;
291 =2 sbit cp_rl2= 0xC8;
292 =2
293 =2 sfr T2MOD = 0xC9;
294 =2
295 =2 sfr RCAP2L = 0xCA;
296 =2 sfr RCAP2H = 0xCB;
297 =2 sfr TL2 = 0xCC;
298 =2 sfr TH2 = 0xCD;
299 =2
300 =2
301 =2 sfr ACC = 0xE0;
302 =2 sfr B = 0xF0;
303 =2
304 =2 sfr CCON = 0xC0;
305 =2 sbit CF = CCON^7;
306 =2 sbit CR = CCON^6;
307 =2 sbit CCF4 = CCON^4;
308 =2 sbit CCF3 = CCON^3;
309 =2 sbit CCF2 = CCON^2;
310 =2 sbit CCF1 = CCON^1;
311 =2 sbit CCF0 = CCON^0;
312 =2
313 =2 sfr CMOD = 0xC1;
314 =2 sfr CCAPM0 = 0xC2;
315 =2 sfr CCAPM1 = 0xC3;
316 =2 sfr CCAPM2 = 0xC4;
317 =2 sfr CCAPM3 = 0xC5;
318 =2 sfr CCAPM4 = 0xC6;
319 =2
320 =2 sfr CL = 0xE9;
321 =2 sfr CCAP0L = 0xEA;
322 =2 sfr CCAP1L = 0xEB;
323 =2 sfr CCAP2L = 0xEC;
324 =2 sfr CCAP3L = 0xED;
325 =2 sfr CCAP4L = 0xEE;
326 =2
C51 COMPILER V7.06 ICMP 07/10/2003 14:34:41 PAGE 12
327 =2 sfr CH = 0xF9;
328 =2 sfr CCAP0H = 0xFA;
329 =2 sfr CCAP1H = 0xFB;
330 =2 sfr CCAP2H = 0xFC;
331 =2 sfr CCAP3H = 0xFD;
332 =2 sfr CCAP4H = 0xFE;
333 =2
334 =2
335 =2
336 =2 sfr AUXR = 0x8E;
337 =2 sfr AUXR1 = 0xA2;
338 =2
339 =2 sfr S1DAT = 0xDA;
340 =2 sfr S1IST = 0xDC;
341 =2 sfr S1ADR = 0xDB;
342 =2 sfr S1STA = 0xD9;
343 =2
344 =2 sfr WDTRST = 0xA6;
345 =2
346 =2 sfr psw = 0xD0;
347 =2 sfr acc = 0xE0;
348 =2 sfr a = 0xE0;
349 =2 sfr A = 0xE0;
350 =2 sfr b = 0xF0;
351 =2 sfr sp = 0x81;
352 =2 sfr dpl = 0x82;
353 =2 sfr dph = 0x83;
354 =2 sfr pcon = 0x87;
355 =2 sfr tcon = 0x88;
356 =2 sfr tmod = 0x89;
357 =2 sfr tl0 = 0x8A;
358 =2 sfr tl1 = 0x8B;
359 =2 sfr th0 = 0x8C;
360 =2 sfr th1 = 0x8D;
361 =2 sfr ie = 0xA8;
362 =2 sfr ip = 0xB8;
363 =2 sfr scon = 0x98;
364 =2 sfr sbuf = 0x99;
365 =2
366 =2
2 =1 #include "ne2000.h" //网络相关的数据结构定义
1 =2 #define uint unsigned int
2 =2 #define uchar unsigned char
3 =2 #define ulong unsigned long
4 =2 union u { unsigned int word;
5 =2 struct{unsigned char high;unsigned char low;}bytes;//字节顺序为高位在前的2byte结构
6 =2 };
7 =2
8 =2 union w { ulong dwords;
9 =2 struct {uint high ;uint low;}words;
10 =2 struct {uchar byte3;uchar byte2;uchar byte1;uchar byte0;}bytes;
11 =2 };
12 =2 union Ethernet_Address_Type{
13 =2 uint words[3];
14 =2 uchar bytes[6];
15 =2 };
16 =2 union Ip_Address_Type{
17 =2 ulong dwords;
18 =2 uint words[2];
19 =2 uchar bytes[4];
20 =2 };
21 =2
C51 COMPILER V7.06 ICMP 07/10/2003 14:34:41 PAGE 13
22 =2 /******************以太网帧**********************/
23 =2 struct ethernet { uchar RecStatus; /*接收状态*/
24 =2 uchar NextPage; /*下一个页*/
25 =2 uint length; /*以太网长度,以字节为单位,*/
26 =2 uint DestMacId[3]; /*目的网卡地址*/
27 =2 uint SourceMacId[3]; /*源网卡地址*/
28 =2 uint NextProtocal; /*下一层协议*/
29 =2 uchar packet[1518]; /*包的内容*/
30 =2 } ;
31 =2 struct retransmit {uchar RtStatus; /*重发缓冲区状态*/
32 =2 uchar timeout; /*超时时间值,单位为10毫秒,最大2.55秒*/
33 =2 uint length; /*以太网长度,以字节为单位,*/
34 =2 uint DestMacId[3]; /*目的网卡地址*/
35 =2 uint SourceMacId[3]; /*源网卡地址*/
36 =2 uint NextProtocal; /*下一层协议 */
37 =2 uchar packet[1518]; /*包的内容*/
38 =2 } ;
39 =2
40 =2 /*******************IP包,仅当IHL=5时用,当不=5时作转换*********/
41 =2 struct ip { uint EtherHead[9]; /*以太网包头*/
42 =2 uchar VerandIphLen; /*版本与头长度*/
43 =2 uchar ServerType; /*服务类型*/
44 =2 uint TotalLen; /*总长度*/
45 =2 uint FrameIndex; /*IP帧序号*/
46 =2 uint Segment; /*分段标志*/
47 =2 uchar ttl; /*生存时间*/
48 =2 uchar NextProtocal; /*下一层协议*/
49 =2 uint Crc; /*校验和*/
50 =2 uint SourceIp[2]; /*源IP*/
51 =2 uint DestId[2]; /*目的IP*/
52 =2 uchar packet[1498]; /*IP包的内容*/
53 =2 };
54 =2 struct IpPacket { uint EtherHead[9]; /*以太网包头*/
55 =2 uint IpPacket[720]; /*IP包的内容*/
56 =2 };
57 =2 struct arp { uint EtherHead[9]; /*以太网头*//* arp报文的内容总长28字节*/
58 =2
59 =2 uint HardwareType; /*以太网为0x0001*/
60 =2 uint ProtocalType; /*ip 为0X0800*/
61 =2 uchar HardwareLen; /*=0X06*/
62 =2 uchar ProtocalLen; /*=0X04*/
63 =2 uint Operation; /*操作 0X0001为请求 0X0002为应答 */
64 =2 /*0X0003为反向地址请求 0X0004为反向地址应答*/
65 =2 uint SourceMacId[3]; /*源网卡地址*/
66 =2 uint SourceIp[2]; /*源IP地址*/
67 =2 uint DestMacId[3]; /*目的网卡地址*/
68 =2 uint DestId[2]; /*目的IP地址*/
69 =2 };
70 =2
71 =2 struct icmp {/*包含在IP包中,是IP的上层为0X01的应用*/
72 =2 uint EtherHead[9]; /*以太网头*/
73 =2 uint IpHead[10]; /*IP头*/
74 =2 uchar type; /*0X08 PING请求 0X00 PING应答*/
75 =2 uchar option; /*0X00 PING*/
76 =2 uint Crc;
77 =2 uint id;
78 =2 uint seq;
79 =2 uchar icmpdata[1478];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -