📄 crc.lst
字号:
C51 COMPILER V7.05 CRC 04/08/2005 13:54:34 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 DEBUG OBJECTEXTEND
stmt level source
1
2 #include "crc.h"
3 #include<REG922.h>
4 unsigned int code crc_ta[16]={
5 0x0000,0x1021,0x2042,0x3063,0x4084,0x50a5,0x60c6,0x70e7,
6 0x8108,0x9129,0xa14a,0xb16b,0xc18c,0xd1ad,0xe1ce,0xf1ef};/* CRC余式表 */
7
8 unsigned int cal_crc(unsigned char *ptr, unsigned char data len)
9 {
10 1 unsigned int data crc;
11 1 unsigned char data da;
12 1 EA=0;
13 1 crc=0;
14 1 while(len--!=0)
15 1 {
16 2 da=((unsigned char)(crc/256))/16; /* 暂存CRC的高四位 */
17 2 crc<<=4; /* CRC右移4位,相当于取CRC的低12位)*/
18 2 crc^=crc_ta[da^(*ptr/16)]; /* CRC的高4位和本字节的前半字节相加后查表计算CRC;后加上上一次CRC的余数 */
19 2 da=((unsigned char)(crc/256))/16; /* 暂存CRC的高4位 */
20 2 crc<<=4; /* CRC右移4位, 相当于CRC的低12位) */
21 2 crc^=crc_ta[da^(*ptr&0x0f)]; /* CRC的高4位和本字节的后半字节相加后查表计算CRC,
22 2 然后再加上上一次CRC的余数 */
23 2 ptr++;
24 2 }
25 1 EA=1;
26 1 return(crc);
27 1 }
28
29
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 129 ----
CONSTANT SIZE = 32 ----
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 + -