📄 mcrc.lst
字号:
A51 MACRO ASSEMBLER MCRC 11/14/2005 20:20:15 PAGE 1
MACRO ASSEMBLER A51 V7.00a
OBJECT MODULE PLACED IN mCRC.OBJ
ASSEMBLER INVOKED BY: D:\MCU\Keil51\C51\BIN\A51.EXE mCRC.SRC SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 NAME MCRC
2
3 ?PR?_m_CRC?MCRC SEGMENT CODE INBLOCK
4 PUBLIC _m_CRC
5
---- 6 RSEG ?PR?_m_CRC?MCRC
0000 7 _m_CRC:
8 USING 0
9 ;CRC0 'R7' ----
10 ;InByt'R5' ----
0000 ED 11 MOV A,R5
0001 C0E0 12 PUSH ACC ;save bits to be shifted
0003 75F008 13 MOV B,#8 ;set shift = 8 bits ;
0006 14 CRC_LOOP:
0006 6F 15 XRL A,R7 ;calculate CRC
0007 13 16 RRC A ;move it to the carry
0008 EF 17 MOV A,R7 ;get the last CRC value
0009 5002 18 JNC ZERO ;skip if data = 0
000B 6418 19 XRL A,#18H ;update the CRC value;
000D 13 20 ZERO: RRC A ;position the new CRC
000E FF 21 MOV R7,A ;store the new CRC
000F D0E0 22 POP ACC ;get the remaining bits
0011 03 23 RR A ;position the next bit
0012 C0E0 24 PUSH ACC ;save the remaining bits
0014 D5F0EF 25 DJNZ B,CRC_LOOP ;repeat for eight bits
0017 D0E0 26 POP ACC ;clean up the stack
27 ; MOV AR7,R5
0019 22 28 RET
29 END
A51 MACRO ASSEMBLER MCRC 11/14/2005 20:20:15 PAGE 2
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
?PR?_M_CRC?MCRC. . C SEG 001AH REL=INBLOCK
ACC. . . . . . . . D ADDR 00E0H A
B. . . . . . . . . D ADDR 00F0H A
CRC_LOOP . . . . . C ADDR 0006H R SEG=?PR?_M_CRC?MCRC
MCRC . . . . . . . N NUMB -----
ZERO . . . . . . . C ADDR 000DH R SEG=?PR?_M_CRC?MCRC
_M_CRC . . . . . . C ADDR 0000H R SEG=?PR?_M_CRC?MCRC
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -