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

📄 crc.asm

📁 Usage: void CRC(int*,int*,int,int) Input: XAR0:coded data(InputData)
💻 ASM
字号:
;************************************************************
;  Copyright (C), 2009, CYIT Co., Ltd.
;  FileName:     CRC
;  Description:  CRC check 
;  Author:       DSP_GROUP
;  Usage:        void CRC(int*,int*,int,int)   
;  Input:        XAR0:coded data(InputData) 
;                XAR1:decoded CRC bits(CrcPoly) 
;                T0:  Length of coded data(CodeOutlen)
;                T1:  Length of CRC bits(CrcPolylen)  		                              	              
;  Return:       NO
;  Altered Registers:  AC0-AC2,T2
;  Others:       8 bits of AC0 LSB is CRCcheck bit     
;  History:         
;      <time>      <version >    <desc>
;     2009/3/9   1.0          build this moudle  
;************************************************************
     .mmregs
     .text
     .def _CRC
          
_CRC:
     PSH   mmap(@ST0_55)
     PSH   mmap(@ST1_55)
     PSH   mmap(@ST2_55)
     PSH   mmap(@ST3_55)
     PSHBOTH AC0 
     PSHBOTH AC1
	 PSH     T0
	 PSH     T1
	 PSH     T2
	 PSHBOTH XAR0
	 PSHBOTH XAR1     

     BCLR SXMD
     XOR  AC0
     XOR  AC1
     AND #0FH, T0, T2
	 MOV mmap(T0)<< #-4, AC1
	 SUB #1, AC1
	 MOV AC1, mmap(BRC0)
	 MOV #0, AC0               ;store crcbit
	 MOV #15, BRC1
	 RPTB check1_end                ;start outerloop
	 MOV *AR0+, AC1              ;read inputdata
	 SFTL AC1, T1
	 OR   AC1,AC0
	 RPTB check1_end              ;start  inloop
	 AND  #1, AC0, T0            ;judge whether or not to XOR
	 XCCPART CHK, T0> #0
	 ||XOR *AR1, AC0
check1_end: SFTL AC0, #-1

     BCC CRC_end, T2 == #0      ;judge whether the reminder of CodeOutlen equal 0
	 SUB #1, T2
	 MOV T2,BRC0
	 ||MOV *AR0,AC1
	 SFTL AC1, T1
	 OR  AC1,AC0
	 RPTB check2_end
	 AND #1,AC0,T0
	 XCCPART CHK2, T0 > #0
	 ||XOR *AR1, AC0
check2_end: SFTL AC0, #-1

CRC_end:
     POPBOTH XAR1
     POPBOTH XAR0
     POP     T2
     POP     T1 
     POP     T0
     POPBOTH AC1
     POPBOTH AC0
     POP   mmap(@ST3_55)
     POP   mmap(@ST2_55)
     POP   mmap(@ST1_55)
     POP   mmap(@ST0_55) 
     
     RET        

⌨️ 快捷键说明

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