📄 crc.lst
字号:
C51 COMPILER V7.05 CRC 04/11/2005 02:18:30 PAGE 1
C51 COMPILER V7.05, COMPILATION OF MODULE CRC
OBJECT MODULE PLACED IN CRC.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE CRC.C BROWSE MODDP2 DEBUG OBJECTEXTEND
stmt level source
1
2 #include "crc.h"
3 unsigned int code crc_ta[16]={
4 0x0000,0x1021,0x2042,0x3063,0x4084,0x50a5,0x60c6,0x70e7,
5 0x8108,0x9129,0xa14a,0xb16b,0xc18c,0xd1ad,0xe1ce,0xf1ef};/* CRC余式表 */
6
7 unsigned int cal_crc(unsigned char data *ptr, unsigned char data len)
8 {
9 1 unsigned int idata crc;
10 1 unsigned char idata da;
11 1
12 1 crc=0;
13 1 while(len--!=0)
14 1 {
15 2 da=((unsigned char)(crc/256))/16; /* 暂存CRC的高四位 */
16 2 crc<<=4; /* CRC右移4位,相当于取CRC的低12位)*/
17 2 crc^=crc_ta[da^(*ptr/16)]; /* CRC的高4位和本字节的前半字节相加后查表计算CRC;后加上上一次CRC的余数 */
18 2 da=((unsigned char)(crc/256))/16; /* 暂存CRC的高4位 */
19 2 crc<<=4; /* CRC右移4位, 相当于CRC的低12位) */
20 2 crc^=crc_ta[da^(*ptr&0x0f)]; /* CRC的高4位和本字节的后半字节相加后查表计算CRC,
21 2 然后再加上上一次CRC的余数 */
22 2 ptr++;
23 2 }
24 1 return(crc);
25 1 }
26 //*********************************************************************************************
27 unsigned int cal_crc3964(unsigned char xdata *ptr, unsigned char idata len)
28 {
29 1 unsigned int idata crc;
30 1 unsigned char idata da;
31 1
32 1 crc=0;
33 1 while(len--!=0)
34 1 {
35 2 da=((unsigned char)(crc/256))/16; /* 暂存CRC的高四位 */
36 2 crc<<=4; /* CRC右移4位,相当于取CRC的低12位)*/
37 2 crc^=crc_ta[da^(*ptr/16)]; /* CRC的高4位和本字节的前半字节相加后查表计算CRC;后加上上一次CRC的余数 */
38 2 da=((unsigned char)(crc/256))/16; /* 暂存CRC的高4位 */
39 2 crc<<=4; /* CRC右移4位, 相当于CRC的低12位) */
40 2 crc^=crc_ta[da^(*ptr&0x0f)]; /* CRC的高4位和本字节的后半字节相加后查表计算CRC,
41 2 然后再加上上一次CRC的余数 */
42 2 ptr++;
43 2 }
44 1 return(crc);
45 1 }
46
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 322 ----
CONSTANT SIZE = 32 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- 6
C51 COMPILER V7.05 CRC 04/11/2005 02:18:30 PAGE 2
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 + -