您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>源码下载>汇编编程>

cmcrc10

大小:14 人气: 2010-02-25 需要积分:0
的空间

用户级别:注册会员

贡献文章:

贡献资料:

cmcrc10.rar

/* CRCTABLE 1.0  Public Domain by Celso Minnitti, Jr  Feb-06-94  */
/* This program will generate the crc16_table and CRC32_table  */
/* that are used by CMCRC.ASM          */

#include
#define CRC32_POLYNOMIAL 0xEDB88320
#define CRC16_POLYNOMIAL 0xA001

void main()
{
 unsigned long crc32Table[256];
 unsigned int crc16Table[256];
 unsigned int crc;
 unsigned long crc32;
 int i, j;

 printf("CRCTABLE 1.0  Public Domain by Celso Minnitti, Jr  Feb-06-94\n\n");

 for (i = 0; i < 256; i++) {
  crc = i;
  for (j = 8; j > 0; j--) {
   if (crc & 1)
    crc = (crc >> 1) ^ CRC16_POLYNOMIAL;
   else
    crc >>= 1;
  }
  crc16Table[i] = crc;
 }

 printf("\ncrc16_table\tlabel\tword");
 for (i = 0; i < 256; i++) {
  if (!(i%32) && i) printf("\n; %Xh", i);
  if (!(i%8)) printf("\n\tdw ");
  if (i%8 != 7) printf("0%04Xh, ", crc16Table[i]);
  else
   printf("0%04Xh", crc16Table[i]);
 }
 printf("\n");

 for (i = 0; i < 256; i++) {
  crc32 = i;
  for (j = 8; j > 0; j--) {
   if (crc32 & 1)
    crc32 = (crc32 >> 1) ^ CRC32_POLYNOMIAL;
   else
    crc32 >>= 1;
  }
  crc32Table[i] = crc32;
 }

 printf("\ncrc32_table\tlabel\tdword");
 for (i = 0; i < 256; i++) {
  if (!(i%16) && i) printf("\n; %Xh", i);
  if (!(i%4)) printf("\n\tdd ");
  if (i%4 != 3) printf("0%08lXh, ", crc32Table[i]);
  else
   printf("0%08lXh", crc32Table[i]);
 }
}


非常好我支持^.^

(7) 100%

不好我反对

(0) 0%

cmcrc10下载

相关电子资料下载

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!