⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 icmp.lst

📁 基于单片机的一款可裁减的tcpip协议
💻 LST
📖 第 1 页 / 共 4 页
字号:
 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 + -