📄 ccitt.src
字号:
; CCITT.SRC generated from: CCITT.c
; COMPILER INVOKED BY:
; C:\Keil\C51\BIN\C51.EXE CCITT.c BROWSE SRC DEBUG OBJECTEXTEND
NAME CCITT
?PR?_CrcFix?CCITT SEGMENT CODE
?DT?_CrcFix?CCITT SEGMENT DATA OVERLAYABLE
?PR?CrcFixClr?CCITT SEGMENT CODE
?PR?_CrcPtr?CCITT SEGMENT CODE
?PR?_CrcPtrClr?CCITT SEGMENT CODE
?DT?CCITT SEGMENT DATA
PUBLIC CrcL
PUBLIC CrcH
PUBLIC _CrcPtrClr
PUBLIC _CrcPtr
PUBLIC CrcFixClr
PUBLIC _CrcFix
RSEG ?DT?_CrcFix?CCITT
?_CrcFix?BYTE:
dats?040: DS 1
RSEG ?DT?CCITT
CrcH: DS 1
CrcL: DS 1
; #include "CCITT.h"
;
; uchar data CrcH;
; uchar data CrcL;
;
; void CrcFix(char dats) // ;固定CRC输出位置算法 23指令周期
RSEG ?PR?_CrcFix?CCITT
_CrcFix:
; SOURCE LINE # 6
MOV A,R7
MOV R0,#CRCH
XRL A,@R0
MOV B,A ;CRCH = CRCH xor Dat[i]
;计算 CRCB = (CRCA div 16) xor (CRCA and $0f0)
SWAP A
XRL A,B
MOV @R0,A
;CrcH:= CrcL xor (CRCT*16+CRCT div 8) xor ((CRCA and $f0) div 8);
ANL A,#0F0H
RL A
XCHD A,@R0 ;A=$21*T CRCH= T*16+T div 8
ANL B,#0F0H
XRL A,B
XCH A,CRCL ;A=CRCL CrcL:= (CRCA and $f0) xor ($21*(CRCB));
XRL CRCH,A;
MOV A,B
SWAP A
RL A ;DIV 8
XRL CRCH,A
RET
; END OF _CrcFix
;
; void CrcFixClr()
RSEG ?PR?CrcFixClr?CCITT
CrcFixClr:
; SOURCE LINE # 12
; {
; SOURCE LINE # 13
; CrcH = 0;
; SOURCE LINE # 14
CLR A
MOV CrcH,A
; CrcL = 0;
; SOURCE LINE # 15
MOV CrcL,A
; }
; SOURCE LINE # 16
RET
; END OF CrcFixClr
;
; void CrcPtr(uchar idata *ptr,uchar dats) //;指针CRC输出位置算法 26指令周期
RSEG ?PR?_CrcPtr?CCITT
_CrcPtr:
USING 0
; SOURCE LINE # 18
;---- Variable 'dats?242' assigned to Register 'R5' ----
;---- Variable 'ptr?241' assigned to Register 'R0' ----
MOV R0,AR7
;计算 CRCA = CRCH xor Dat[i]
MOV A,R5
XRL A,@R0
MOV B,A ;CRCH = CRCH xor Dat[i]
;计算 CRCB = (CRCA div 16) xor (CRCA and $0f0)
SWAP A
XRL A,B
MOV @R0,A
;CrcH:= CrcL xor (CRCT*16+CRCT div 8) xor ((CRCA and $f0) div 8);
ANL A,#0F0H
RL A
XCHD A,@R0 ;A=$21*T CRCH= T*16+T div 8
ANL B,#0F0H
XRL A,B
INC R0
XCH A,@R0 ;A=CRCL CrcL:= (CRCA and $f0) xor ($21*(CRCB));
DEC R0
XRL A,@R0;
MOV @R0,A
MOV A,B
SWAP A
RL A ;DIV 8
XRL A,@R0
MOV @R0,A
RET
; END OF _CrcPtr
;
; void CrcPtrClr(uchar idata *ptr)
RSEG ?PR?_CrcPtrClr?CCITT
_CrcPtrClr:
USING 0
; SOURCE LINE # 24
;---- Variable 'ptr?343' assigned to Register 'R0' ----
MOV R0,AR7
; {
; SOURCE LINE # 25
; *ptr = 0;
; SOURCE LINE # 26
CLR A
MOV @R0,A
; *(ptr+1) = 0;
; SOURCE LINE # 27
INC R0
MOV @R0,A
; }
; SOURCE LINE # 28
RET
; END OF _CrcPtrClr
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -