📄 crc-ccitt.ls1
字号:
0025 F0 417 MOVX @DPTR,A
0026 418 ?C0001:
419 ; while(len--!=0) {
420 ; SOURCE LINE # 51
0026 900006 421 MOV DPTR,#06H
0029 120000 F 422 LCALL ?C?XBPOFF
002C E0 423 MOVX A,@DPTR
002D FF 424 MOV R7,A
002E 14 425 DEC A
002F F0 426 MOVX @DPTR,A
0030 EF 427 MOV A,R7
0031 7003 428 JNZ $ + 5H
0033 020000 F 429 LJMP ?C0002
430 ; da=(INT8U)(crc/256); /* 以8 位二进制实男问皆荽鍯RC 的高8 位 */
431 ; SOURCE LINE # 52
0036 850083 F 432 MOV DPH,?C_XBP
0039 850082 F 433 MOV DPL,?C_XBP+01H
003C E0 434 MOVX A,@DPTR
003D FC 435 MOV R4,A
003E A3 436 INC DPTR
003F E0 437 MOVX A,@DPTR
0040 FD 438 MOV R5,A
0041 EC 439 MOV A,R4
0042 850083 F 440 MOV DPH,?C_XBP
0045 850082 F 441 MOV DPL,?C_XBP+01H
0048 A3 442 INC DPTR
0049 A3 443 INC DPTR
004A F0 444 MOVX @DPTR,A
445 ; crc<<=8; /* 左移8 位,相当于CRC 的低8 位乘以8 2 */
446 ; SOURCE LINE # 53
004B 850083 F 447 MOV DPH,?C_XBP
004E 850082 F 448 MOV DPL,?C_XBP+01H
0051 ED 449 MOV A,R5
0052 F0 450 MOVX @DPTR,A
0053 A3 451 INC DPTR
A51 MACRO ASSEMBLER CRC_CCITT 03/06/2007 22:39:45 PAGE 8
0054 E4 452 CLR A
0055 F0 453 MOVX @DPTR,A
454 ; crc^=crc_ta[da^*ptr]; /* 高8 位和当前字节相加后再查表求CRC ,再加上以前的CRC */
455 ; SOURCE LINE # 54
0056 850083 F 456 MOV DPH,?C_XBP
0059 850082 F 457 MOV DPL,?C_XBP+01H
005C C083 458 PUSH DPH
005E C082 459 PUSH DPL
0060 E0 460 MOVX A,@DPTR
0061 FE 461 MOV R6,A
0062 A3 462 INC DPTR
0063 E0 463 MOVX A,@DPTR
0064 FF 464 MOV R7,A
0065 900003 465 MOV DPTR,#03H
0068 120000 F 466 LCALL ?C?XBPOFF
006B E0 467 MOVX A,@DPTR
006C FB 468 MOV R3,A
006D A3 469 INC DPTR
006E E0 470 MOVX A,@DPTR
006F FA 471 MOV R2,A
0070 A3 472 INC DPTR
0071 E0 473 MOVX A,@DPTR
0072 F9 474 MOV R1,A
0073 120000 F 475 LCALL ?C?CLDPTR
0076 FD 476 MOV R5,A
0077 850083 F 477 MOV DPH,?C_XBP
007A 850082 F 478 MOV DPL,?C_XBP+01H
007D A3 479 INC DPTR
007E A3 480 INC DPTR
007F E0 481 MOVX A,@DPTR
0080 6D 482 XRL A,R5
0081 75F002 483 MOV B,#02H
0084 A4 484 MUL AB
0085 2400 F 485 ADD A,#LOW (crc_ta)
0087 F582 486 MOV DPL,A
0089 E5F0 487 MOV A,B
008B 3400 F 488 ADDC A,#HIGH (crc_ta)
008D F583 489 MOV DPH,A
008F E4 490 CLR A
0090 93 491 MOVC A,@A+DPTR
0091 FC 492 MOV R4,A
0092 7401 493 MOV A,#01H
0094 93 494 MOVC A,@A+DPTR
0095 FD 495 MOV R5,A
0096 EE 496 MOV A,R6
0097 6C 497 XRL A,R4
0098 FE 498 MOV R6,A
0099 EF 499 MOV A,R7
009A 6D 500 XRL A,R5
009B FF 501 MOV R7,A
009C D082 502 POP DPL
009E D083 503 POP DPH
00A0 EE 504 MOV A,R6
00A1 F0 505 MOVX @DPTR,A
00A2 A3 506 INC DPTR
00A3 EF 507 MOV A,R7
00A4 F0 508 MOVX @DPTR,A
509 ; ptr++;
510 ; SOURCE LINE # 55
00A5 900003 511 MOV DPTR,#03H
00A8 120000 F 512 LCALL ?C?XBPOFF
00AB A3 513 INC DPTR
00AC E4 514 CLR A
00AD 75F001 515 MOV B,#01H
00B0 120000 F 516 LCALL ?C?IILDX
517 ; }
A51 MACRO ASSEMBLER CRC_CCITT 03/06/2007 22:39:45 PAGE 9
518 ; SOURCE LINE # 56
00B3 020000 F 519 LJMP ?C0001
00B6 520 ?C0002:
521 ; return(crc);
522 ; SOURCE LINE # 57
00B6 850083 F 523 MOV DPH,?C_XBP
00B9 850082 F 524 MOV DPL,?C_XBP+01H
00BC E0 525 MOVX A,@DPTR
00BD FE 526 MOV R6,A
00BE A3 527 INC DPTR
00BF E0 528 MOVX A,@DPTR
00C0 FF 529 MOV R7,A
530 ; }
531 ; SOURCE LINE # 58
00C1 532 ?C0003:
00C1 900007 533 MOV DPTR,#07H
00C4 020000 F 534 LJMP ?C?ADDXBP
535 ; END OF _?cal_crc
536
537 END
A51 MACRO ASSEMBLER CRC_CCITT 03/06/2007 22:39:45 PAGE 10
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
?C0001. . . . . . . . . C ADDR 0026H R SEG=?PR?_?CAL_CRC?CRC_CCITT
?C0002. . . . . . . . . C ADDR 00B6H R SEG=?PR?_?CAL_CRC?CRC_CCITT
?C0003. . . . . . . . . C ADDR 00C1H R SEG=?PR?_?CAL_CRC?CRC_CCITT
?C?ADDXBP . . . . . . . C ADDR ----- EXT
?C?CLDPTR . . . . . . . C ADDR ----- EXT
?C?IILDX. . . . . . . . C ADDR ----- EXT
?C?XBPOFF . . . . . . . C ADDR ----- EXT
?CO?CRC_CCITT . . . . . C SEG 0200H REL=UNIT
?C_XBP. . . . . . . . . D ADDR ----- EXT
?PR?_?CAL_CRC?CRC_CCITT C SEG 00C7H REL=UNIT
AC. . . . . . . . . . . B ADDR 00D0H.6 A
ACC . . . . . . . . . . D ADDR 00E0H A
B . . . . . . . . . . . D ADDR 00F0H A
CRC_CCITT . . . . . . . N NUMB -----
CRC_TA. . . . . . . . . C ADDR 0000H R SEG=?CO?CRC_CCITT
CY. . . . . . . . . . . B ADDR 00D0H.7 A
DPH . . . . . . . . . . D ADDR 0083H A
DPL . . . . . . . . . . D ADDR 0082H A
EA. . . . . . . . . . . B ADDR 00A8H.7 A
ES. . . . . . . . . . . B ADDR 00A8H.4 A
ET0 . . . . . . . . . . B ADDR 00A8H.1 A
ET1 . . . . . . . . . . B ADDR 00A8H.3 A
EX0 . . . . . . . . . . B ADDR 00A8H.0 A
EX1 . . . . . . . . . . B ADDR 00A8H.2 A
F0. . . . . . . . . . . B ADDR 00D0H.5 A
IE. . . . . . . . . . . D ADDR 00A8H A
IE0 . . . . . . . . . . B ADDR 0088H.1 A
IE1 . . . . . . . . . . B ADDR 0088H.3 A
INT0. . . . . . . . . . B ADDR 00B0H.2 A
INT1. . . . . . . . . . B ADDR 00B0H.3 A
IP. . . . . . . . . . . D ADDR 00B8H A
IT0 . . . . . . . . . . B ADDR 0088H.0 A
IT1 . . . . . . . . . . B ADDR 0088H.2 A
OV. . . . . . . . . . . B ADDR 00D0H.2 A
P . . . . . . . . . . . B ADDR 00D0H.0 A
P0. . . . . . . . . . . D ADDR 0080H A
P1. . . . . . . . . . . D ADDR 0090H A
P2. . . . . . . . . . . D ADDR 00A0H A
P3. . . . . . . . . . . D ADDR 00B0H A
PCON. . . . . . . . . . D ADDR 0087H A
PS. . . . . . . . . . . B ADDR 00B8H.4 A
PSW . . . . . . . . . . D ADDR 00D0H A
PT0 . . . . . . . . . . B ADDR 00B8H.1 A
PT1 . . . . . . . . . . B ADDR 00B8H.3 A
PX0 . . . . . . . . . . B ADDR 00B8H.0 A
PX1 . . . . . . . . . . B ADDR 00B8H.2 A
RB8 . . . . . . . . . . B ADDR 0098H.2 A
RD. . . . . . . . . . . B ADDR 00B0H.7 A
REN . . . . . . . . . . B ADDR 0098H.4 A
RI. . . . . . . . . . . B ADDR 0098H.0 A
RS0 . . . . . . . . . . B ADDR 00D0H.3 A
RS1 . . . . . . . . . . B ADDR 00D0H.4 A
RXD . . . . . . . . . . B ADDR 00B0H.0 A
SBUF. . . . . . . . . . D ADDR 0099H A
SCON. . . . . . . . . . D ADDR 0098H A
SM0 . . . . . . . . . . B ADDR 0098H.7 A
SM1 . . . . . . . . . . B ADDR 0098H.6 A
SM2 . . . . . . . . . . B ADDR 0098H.5 A
SP. . . . . . . . . . . D ADDR 0081H A
T0. . . . . . . . . . . B ADDR 00B0H.4 A
A51 MACRO ASSEMBLER CRC_CCITT 03/06/2007 22:39:45 PAGE 11
T1. . . . . . . . . . . B ADDR 00B0H.5 A
TB8 . . . . . . . . . . B ADDR 0098H.3 A
TCON. . . . . . . . . . D ADDR 0088H A
TF0 . . . . . . . . . . B ADDR 0088H.5 A
TF1 . . . . . . . . . . B ADDR 0088H.7 A
TH0 . . . . . . . . . . D ADDR 008CH A
TH1 . . . . . . . . . . D ADDR 008DH A
TI. . . . . . . . . . . B ADDR 0098H.1 A
TL0 . . . . . . . . . . D ADDR 008AH A
TL1 . . . . . . . . . . D ADDR 008BH A
TMOD. . . . . . . . . . D ADDR 0089H A
TR0 . . . . . . . . . . B ADDR 0088H.4 A
TR1 . . . . . . . . . . B ADDR 0088H.6 A
TXD . . . . . . . . . . B ADDR 00B0H.1 A
WR. . . . . . . . . . . B ADDR 00B0H.6 A
_?CAL_CRC . . . . . . . C ADDR 0000H R SEG=?PR?_?CAL_CRC?CRC_CCITT
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -