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

📄 ccitt.lst

📁 用于51单片机的高速CRC-16计算程序
💻 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 + -