crc16_zcy.asm

来自「用于51单片机的CRC16 校验程序」· 汇编 代码 · 共 84 行

ASM
84
字号
;
        CRCH    DATA  30H
        CRCL    DATA  31H

        ORG     0H
BEGIN:
        MOV     CRCH,#0H
        MOV     CRCL,#0H
        MOV     R1,#32H
        MOV     32H,#0E2H
        MOV     33H,#01BH
        MOV     34H,#0DBH
        ACALL   CRC1B
        mov     R1,#33H
        ACALL   CRC1B
        mov     R1,#34H
        ACALL   CRC1B
        SJMP    BEGIN
;;;;;;;;;;;;;;;;;;;;;;;;
;半字节CRC校验程序
;CRC结果 : CRCH CRCL
;数据指针: R1
;CRC结果指针:R0 = #CRCH
;占用:B A R0
;;;;;;;;;;;;;;;;;;;;;;;;
CRC1B:
;保存现场
;        PUSH    ACC
;        PUSH    B
;        MOV     A,R0
;        PUSH    ACC
        MOV   A,CRCH
        MOV   B,A
        SWAP  A
        MOV   CRCH,A
        MOV   A,CRCL
        SWAP  A
        MOV   CRCL,A
        MOV   R0,#CRCH
        XCHD  A,@R0
        ANL   A,#0F0H
        SWAP  A
        MOV   CRCL,A
        MOV   A,@R1
        XRL   A,B
        ANL   A,#0F0H
        MOV   B,A
        MOV   C,ACC.7
        MOV   ACC.0,C
        XRL   A,CRCH
        SWAP  A
        MOV   CRCH,A
        MOV   A,B
        CLR   C
        RLC   A
        SWAP  A
        ADD   A,B
        XRL   A,CRCL
        MOV   CRCL,A
        XCHD  A,@R0
        MOV   B,A
        ANL   A,#0F0H
        MOV   CRCL,A
        MOV   A,@R1
        XRL   A,B
        ANL   A,#0FH
        MOV   B,A
        SWAP  A
        RLC   A
        ADD   A,B
        XRL   CRCL,A
        MOV   A,B
        SWAP  A
        MOV   C,ACC.7
        MOV   ACC.0,C
        XRL   CRCH,A
;恢复现场
;        POP  ACC
;        MOV  R0,A
;        POP  B
;        POP  ACC
        RET

⌨️ 快捷键说明

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