📄 crc.lst
字号:
C51 COMPILER V7.06 CRC 03/29/2008 23:46:17 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE CRC
OBJECT MODULE PLACED IN .\output\CRC.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CRC\CRC.c BROWSE DEBUG OBJECTEXTEND PRINT(.\Listing\CRC.lst) OBJECT(.\outpu
-t\CRC.obj)
stmt level source
1
2
3
4 //unsigned char code crcbuff [] = { 0x00,0x00,0x00,0x00,0x06,0x0d,0xd2,0xe3};
5
6 //unsigned char code crcbuff [] = {0x7F,0xFE,0xFF,0x09,0xC4,0xD2,0x01,0x00,0x00,0x00};
7 unsigned char code crcbuff [] = {0x00,0x01,0x00,0xFA,0x8C,0x6D,0xFF,0xFF,0xFE,0xFF};
8 unsigned int crc; // CRC 码
9
10
11 unsigned int crc16l(unsigned char *ptr,unsigned char len) // ptr 为数据指针,len 为数据长度
12 {
13 1 unsigned char i;
14 1 while(len--)
15 1 {
16 2 for(i=0x80; i!=0; i>>=1)
17 2 {
18 3 if((crc&0x8000)!=0) {crc<<=1; crc^=0x1081;} // 1-1
19 3 else crc<<=1; // 1-2
20 3 if((*ptr&i)!=0) crc^=0x1081; // 1-3
21 3 }
22 2 ptr++;
23 2 }
24 1 return(crc);
25 1 }
26
27
28
29
30 /*
31 //全字节查表法
32
33 code uint crc_ta[256]={ // X16+X12+X5+1 余式表
34 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
35 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
36 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,
37 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,
38 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,
39 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,
40 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,
41 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,
42 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,
43 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,
44 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,
45 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,
46 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,
47 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,
48 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,
49 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,
50 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,
51 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,
52 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,
53 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,
54 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,
C51 COMPILER V7.06 CRC 03/29/2008 23:46:17 PAGE 2
55 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
56 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,
57 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,
58 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,
59 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,
60 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,
61 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,
62 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,
63 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,
64 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,
65 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0
66 };
67
68
69
70 uint table_crc(uchar *ptr,uchar len) // 字节查表法求 CRC
71 {
72 uchar da;
73 while(len--!=0)
74 {
75 da=(uchar) (crc/256); // 以 8 位二进制数暂存 CRC 的高 8 位
76 crc<<=8; // 左移 8 位
77 crc^=crc_ta[da^*ptr]; // 高字节和当前数据 XOR 再查表
78 ptr++;
79 }
80 return(crc);
81 }
82
83 */
84
85
86
87 /*
88 //半字节查表法
89
90 code uint crc_ba[16]={
91 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
92 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
93 };
94
95 uint ban_crc(uchar *ptr,uchar len)
96 {
97 uchar da;
98 while(len--!=0)
99 {
100 da = ((uchar)(crc/256))/16;
101 crc <<= 4;
102 crc ^=crc_ba[da^(*ptr/16)];
103 da = ((uchar)(crc/256)/16);
104 crc <<= 4;
105 crc ^=crc_ba[da^(*ptr&0x0f)];
106 ptr++;
107 }
108 return(crc);
109 }
110
111 */
112
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 78 ----
C51 COMPILER V7.06 CRC 03/29/2008 23:46:17 PAGE 3
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -