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

📄 crc8.a51

📁 8位沉余CRC校验算法,8051汇编语言编写。
💻 A51
字号:
NAME	CRC8

?PR?_crc8ccitt?CRC8  SEGMENT CODE
	PUBLIC	_crc8ccitt

	RSEG  ?PR?_crc8ccitt?CRC8
_crc8ccitt:
	USING	0
;***********************************************************************
; The following snippet of code was taken from 8052.com (and modified)
;***********************************************************************
;	Calculate CRC-8 Values.  Uses The CCITT-8 Polynomial, Expressed As
;	X^8 + X^5 + X^4 + 1
;  Description:
;	Calculates Value In Acc Into The Running CRC In 'B', Using The 
;	Calculation Method (Slower But Smaller).
;
;  Entry Requirements:
;	Acc Has Value To Add To CRC
;	'B' Contains Running CRC Value
;
;  On Exit:
;	'B' Has Updated CRC Value
;
;  Affected:
;	PSW.CY, B
;
;  Stack:
;	3 Bytes, Not Including Called Routines
;
;  Comments:
;	None
;
		push	acc			; Save Acc
		push	b
		push	0			; Save R0
		push	acc			; Save Value
		mov	r0,#8			; Number Bits In Byte
		mov	b,R7
		mov	a,R5;
lp1:		xrl	a,b			; Calculate CRC
		rrc	a			; Move To Carry
		mov	a,b			; Get The Last CRC Value
		jnc	lp2			; Skip If Data == 0
		xrl	a,#18h			; Update The CRC Value
;
lp2:		rrc	a			; Position The New CRC
		mov	b,a			; Store The New CRC
		pop	acc			; Get The Remaining Bits
		rr	a			; Position The Next Bit
		push	acc			; Save The Remaining Bits
		djnz	r0,lp1			; Repeat For 8 Bits
;
		MOV  	R7,b

		pop	acc			; Clean Up Stack
		pop	0			; Recover R0
		pop	b
		pop	acc			; Recover Acc




?C0001:
	RET  	

	END

⌨️ 快捷键说明

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