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

📄 crc.lis

📁 AVR16源代码 ICC编译器
💻 LIS
字号:
                        .module Crc.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\MY_COMPUTER\d\avr16\atmegal16\Crc.c
 0000                   .dbfunc e BlockCRC16UsingAlgorithm _BlockCRC16UsingAlgorithm fi
 0000           ;  uiCharShifted -> R20,R21
 0000           ;              i -> R22,R23
 0000           ;              v -> R12
 0000           ;            CRC -> R10,R11
 0000           ;            Len -> R18,R19
 0000           ;          Block -> R16,R17
                        .even
 0000           _BlockCRC16UsingAlgorithm::
 0000 0E940000          xcall push_gset4
 0004                   .dbline -1
 0004                   .dbline 15
 0004           ; #include      <iom16v.h>
 0004           ; #include      "Crc.h"
 0004           ; 
 0004           ; //============================================================
 0004           ; //函  数:unsigned short CRC16(unsigned char *Message, int Len)
 0004           ; //功  能:CRC16计算
 0004           ; //入口参数:Message 要进行CRC16计算字符串,Len字符串长度  
 0004           ; //返 回 值:CRC16计算结果  
 0004           ; //设 计 者:覃道堂 
 0004           ; //创作时间:2004-03-30
 0004           ; //修改时间:
 0004           ; //修改目的:
 0004           ; //============================================================
 0004           ; unsigned int  BlockCRC16UsingAlgorithm(unsigned char *Block, unsigned int Len)
 0004           ; {
 0004                   .dbline 21
 0004           ;    unsigned int CRC;
 0004           ;    unsigned int uiCharShifted;
 0004           ;    unsigned int i;
 0004           ;    unsigned char v;
 0004           ; 
 0004           ;    CRC = 0;
 0004 AA24              clr R10
 0006 BB24              clr R11
 0008                   .dbline 22
 0008           ;    for (i=0; i<Len; i++)
 0008 6627              clr R22
 000A 7727              clr R23
 000C 1FC0              xjmp L5
 000E           L2:
 000E                   .dbline 23
 000E           ;      {
 000E                   .dbline 24
 000E           ;      uiCharShifted = ((unsigned int)(Block[i]) & 0x00FF) << 8;
 000E FB01              movw R30,R22
 0010 E00F              add R30,R16
 0012 F11F              adc R31,R17
 0014 4081              ldd R20,z+0
 0016 5527              clr R21
 0018 5070              andi R21,0
 001A 542F              mov R21,R20
 001C 4427              clr R20
 001E                   .dbline 25
 001E           ;      CRC = (CRC) ^ uiCharShifted;
 001E A426              eor R10,R20
 0020 B526              eor R11,R21
 0022                   .dbline 26
 0022           ;      for (v = 0; v < 8; ++v)
 0022 CC24              clr R12
 0024 0EC0              xjmp L9
 0026           L6:
 0026                   .dbline 27
 0026           ;        {
 0026                   .dbline 28
 0026           ;        if ( CRC & 0x8000 )
 0026 B7FE              sbrs R11,7
 0028 09C0              rjmp L10
 002A                   .dbline 29
 002A           ;          CRC = (CRC << 1) ^ 0x1021;
 002A 81E2              ldi R24,4129
 002C 90E1              ldi R25,16
 002E 1501              movw R2,R10
 0030 220C              lsl R2
 0032 331C              rol R3
 0034 2826              eor R2,R24
 0036 3926              eor R3,R25
 0038 5101              movw R10,R2
 003A 02C0              xjmp L11
 003C           L10:
 003C                   .dbline 31
 003C           ;        else
 003C           ;          CRC = CRC << 1;
 003C AA0C              lsl R10
 003E BB1C              rol R11
 0040           L11:
 0040                   .dbline 32
 0040           L7:
 0040                   .dbline 26
 0040 C394              inc R12
 0042           L9:
 0042                   .dbline 26
 0042 8C2D              mov R24,R12
 0044 8830              cpi R24,8
 0046 78F3              brlo L6
 0048                   .dbline 33
 0048                   .dbline 34
 0048           L3:
 0048                   .dbline 22
 0048 6F5F              subi R22,255  ; offset = 1
 004A 7F4F              sbci R23,255
 004C           L5:
 004C                   .dbline 22
 004C 6217              cp R22,R18
 004E 7307              cpc R23,R19
 0050 F0F2              brlo L2
 0052                   .dbline 36
 0052           ;        }
 0052           ;      CRC = CRC & 0xFFFF;
 0052           ;      }
 0052           ;      // ByteCRC16UsingAlgorithm(CRC, Block[i]);
 0052           ;    return CRC;
 0052 8501              movw R16,R10
 0054                   .dbline -2
 0054           L1:
 0054 0E940000          xcall pop_gset4
 0058                   .dbline 0 ; func end
 0058 0895              ret
 005A                   .dbsym r uiCharShifted 20 i
 005A                   .dbsym r i 22 i
 005A                   .dbsym r v 12 c
 005A                   .dbsym r CRC 10 i
 005A                   .dbsym r Len 18 i
 005A                   .dbsym r Block 16 pc
 005A                   .dbend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -