CRC16校驗(yàn)的程序
;========================================================== DATA_BUFF EQU 10H CRC_NUM EQU 22H CRC_DATA EQU 23H CRC_POINTER EQU 30H ;========================================================== CRC_XORH EQU 10H ;11021=2^16+2^12+2^5+1 CRC_XORL EQU 21H ;========================================================== ORG 0000H AJMP MAIN MAIN: MOV CRC_DATA,#DATA_BUFF MOV CRC_NUM,#3 ACALL CRC AJMP MAIN ;========================================================== ; *****RC校驗(yàn)子程序***** ; 多項(xiàng)式=2^16+2^12+2^5+1=11021H ;CRC_DATA-----進(jìn)行CRC校驗(yàn)的數(shù)據(jù)指針,保存需要進(jìn)行CRC校驗(yàn)的數(shù)據(jù)首址 ;CRC_POINTER--緩沖保存CRC校驗(yàn)數(shù)據(jù)首址 ;CRC_NUM------保存所需進(jìn)行CRC校驗(yàn)的字節(jié)數(shù) ;R7-----------所有進(jìn)行CRC校驗(yàn)字節(jié)的位數(shù),=(CRC_NUM+2)*8-16 ;========================================================== CRC: MOV R0,CRC_DATA MOV R1,#CRC_POINTER MOV R2,CRC_NUM MOV A,CRC_NUM ;R7=CRC_NUM*8 ADD A,#2 RL A RL A RL A |