📄 ccitt.lst
字号:
A51 MACRO ASSEMBLER CCITT 02/04/2007 20:07:46 PAGE 1
MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN CCITT.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE CCITT.SRC SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ; CCITT.SRC generated from: CCITT.c
2 ; COMPILER INVOKED BY:
3 ; C:\Keil\C51\BIN\C51.EXE CCITT.c BROWSE SRC DEBUG OBJECTEXTEND
4
5
6 NAME CCITT
7
8 ?PR?_CrcFix?CCITT SEGMENT CODE
9 ?DT?_CrcFix?CCITT SEGMENT DATA OVERLAYABLE
10 ?PR?CrcFixClr?CCITT SEGMENT CODE
11 ?PR?_CrcPtr?CCITT SEGMENT CODE
12 ?PR?_CrcPtrClr?CCITT SEGMENT CODE
13 ?DT?CCITT SEGMENT DATA
14 PUBLIC CrcL
15 PUBLIC CrcH
16 PUBLIC _CrcPtrClr
17 PUBLIC _CrcPtr
18 PUBLIC CrcFixClr
19 PUBLIC _CrcFix
20
---- 21 RSEG ?DT?_CrcFix?CCITT
0000 22 ?_CrcFix?BYTE:
0000 23 dats?040: DS 1
24
---- 25 RSEG ?DT?CCITT
0000 26 CrcH: DS 1
0001 27 CrcL: DS 1
28 ; #include "CCITT.h"
29 ;
30 ; uchar data CrcH;
31 ; uchar data CrcL;
32 ;
33 ; void CrcFix(char dats) // ;固定CRC输出位置算法 23指令周期
34
---- 35 RSEG ?PR?_CrcFix?CCITT
0000 36 _CrcFix:
37 ; SOURCE LINE # 6
38
0000 EF 39 MOV A,R7
0001 7800 F 40 MOV R0,#CRCH
0003 66 41 XRL A,@R0
0004 F5F0 42 MOV B,A ;CRCH = CRCH xor Dat[i]
43 ;计算 CRCB = (CRCA div 16) xor (CRCA and $0f0)
0006 C4 44 SWAP A
0007 65F0 45 XRL A,B
0009 F6 46 MOV @R0,A
47 ;CrcH:= CrcL xor (CRCT*16+CRCT div 8) xor ((CRCA and $f0) div 8);
000A 54F0 48 ANL A,#0F0H
000C 23 49 RL A
000D D6 50 XCHD A,@R0 ;A=$21*T CRCH= T*16+T div 8
000E 53F0F0 51 ANL B,#0F0H
0011 65F0 52 XRL A,B
0013 C500 F 53 XCH A,CRCL ;A=CRCL CrcL:= (CRCA and $f0) xor ($21*(CRCB));
0015 6200 F 54 XRL CRCH,A;
0017 E5F0 55 MOV A,B
0019 C4 56 SWAP A
001A 23 57 RL A ;DIV 8
001B 6200 F 58 XRL CRCH,A
A51 MACRO ASSEMBLER CCITT 02/04/2007 20:07:46 PAGE 2
001D 22 59 RET
60 ; END OF _CrcFix
61
62 ;
63 ; void CrcFixClr()
64
---- 65 RSEG ?PR?CrcFixClr?CCITT
0000 66 CrcFixClr:
67 ; SOURCE LINE # 12
68 ; {
69 ; SOURCE LINE # 13
70 ; CrcH = 0;
71 ; SOURCE LINE # 14
0000 E4 72 CLR A
0001 F500 F 73 MOV CrcH,A
74 ; CrcL = 0;
75 ; SOURCE LINE # 15
0003 F500 F 76 MOV CrcL,A
77 ; }
78 ; SOURCE LINE # 16
0005 22 79 RET
80 ; END OF CrcFixClr
81
82 ;
83 ; void CrcPtr(uchar idata *ptr,uchar dats) //;指针CRC输出位置算法 26指令周期
84
---- 85 RSEG ?PR?_CrcPtr?CCITT
0000 86 _CrcPtr:
87 USING 0
88 ; SOURCE LINE # 18
89 ;---- Variable 'dats?242' assigned to Register 'R5' ----
90 ;---- Variable 'ptr?241' assigned to Register 'R0' ----
0000 A807 91 MOV R0,AR7
92 ;计算 CRCA = CRCH xor Dat[i]
0002 ED 93 MOV A,R5
0003 66 94 XRL A,@R0
0004 F5F0 95 MOV B,A ;CRCH = CRCH xor Dat[i]
96 ;计算 CRCB = (CRCA div 16) xor (CRCA and $0f0)
0006 C4 97 SWAP A
0007 65F0 98 XRL A,B
0009 F6 99 MOV @R0,A
100 ;CrcH:= CrcL xor (CRCT*16+CRCT div 8) xor ((CRCA and $f0) div 8);
000A 54F0 101 ANL A,#0F0H
000C 23 102 RL A
000D D6 103 XCHD A,@R0 ;A=$21*T CRCH= T*16+T div 8
000E 53F0F0 104 ANL B,#0F0H
0011 65F0 105 XRL A,B
0013 08 106 INC R0
0014 C6 107 XCH A,@R0 ;A=CRCL CrcL:= (CRCA and $f0) xor ($21*(CRCB));
0015 18 108 DEC R0
0016 66 109 XRL A,@R0;
0017 F6 110 MOV @R0,A
0018 E5F0 111 MOV A,B
001A C4 112 SWAP A
001B 23 113 RL A ;DIV 8
001C 66 114 XRL A,@R0
001D F6 115 MOV @R0,A
001E 22 116 RET
117 ; END OF _CrcPtr
118
119 ;
120 ; void CrcPtrClr(uchar idata *ptr)
121
---- 122 RSEG ?PR?_CrcPtrClr?CCITT
0000 123 _CrcPtrClr:
124 USING 0
A51 MACRO ASSEMBLER CCITT 02/04/2007 20:07:46 PAGE 3
125 ; SOURCE LINE # 24
126 ;---- Variable 'ptr?343' assigned to Register 'R0' ----
0000 A807 127 MOV R0,AR7
128 ; {
129 ; SOURCE LINE # 25
130 ; *ptr = 0;
131 ; SOURCE LINE # 26
0002 E4 132 CLR A
0003 F6 133 MOV @R0,A
134 ; *(ptr+1) = 0;
135 ; SOURCE LINE # 27
0004 08 136 INC R0
0005 F6 137 MOV @R0,A
138 ; }
139 ; SOURCE LINE # 28
0006 22 140 RET
141 ; END OF _CrcPtrClr
142
143 END
A51 MACRO ASSEMBLER CCITT 02/04/2007 20:07:46 PAGE 4
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
?DT?CCITT. . . . . . D SEG 0002H REL=UNIT
?DT?_CRCFIX?CCITT. . D SEG 0001H REL=UNIT
?PR?CRCFIXCLR?CCITT. C SEG 0006H REL=UNIT
?PR?_CRCFIX?CCITT. . C SEG 001EH REL=UNIT
?PR?_CRCPTR?CCITT. . C SEG 001FH REL=UNIT
?PR?_CRCPTRCLR?CCITT C SEG 0007H REL=UNIT
?_CRCFIX?BYTE. . . . D ADDR 0000H R SEG=?DT?_CRCFIX?CCITT
AR7. . . . . . . . . D ADDR 0007H A
B. . . . . . . . . . D ADDR 00F0H A
CCITT. . . . . . . . N NUMB -----
CRCFIXCLR. . . . . . C ADDR 0000H R SEG=?PR?CRCFIXCLR?CCITT
CRCH . . . . . . . . D ADDR 0000H R SEG=?DT?CCITT
CRCL . . . . . . . . D ADDR 0001H R SEG=?DT?CCITT
DATS?040 . . . . . . D ADDR 0000H R SEG=?DT?_CRCFIX?CCITT
_CRCFIX. . . . . . . C ADDR 0000H R SEG=?PR?_CRCFIX?CCITT
_CRCPTR. . . . . . . C ADDR 0000H R SEG=?PR?_CRCPTR?CCITT
_CRCPTRCLR . . . . . C ADDR 0000H R SEG=?PR?_CRCPTRCLR?CCITT
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -