📄 crc16.ls1
字号:
0041 F8 470 MOV R0,A
0042 A3 471 INC DPTR
0043 E0 472 MOVX A,@DPTR
0044 F9 473 MOV R1,A
0045 A3 474 INC DPTR
0046 E0 475 MOVX A,@DPTR
0047 FA 476 MOV R2,A
0048 A3 477 INC DPTR
0049 E0 478 MOVX A,@DPTR
004A FB 479 MOV R3,A
004B C000 480 PUSH AR0
004D 900000 F 481 MOV DPTR,#ptr?148
0050 E4 482 CLR A
0051 75F002 483 MOV B,#02H
0054 120000 F 484 LCALL ?C?ILDIX
0057 85F082 485 MOV DPL,B
005A F583 486 MOV DPH,A
005C E0 487 MOVX A,@DPTR
005D FE 488 MOV R6,A
005E A3 489 INC DPTR
005F E0 490 MOVX A,@DPTR
0060 FF 491 MOV R7,A
0061 E4 492 CLR A
0062 FC 493 MOV R4,A
0063 FD 494 MOV R5,A
0064 D000 495 POP AR0
0066 EB 496 MOV A,R3
0067 2F 497 ADD A,R7
0068 FF 498 MOV R7,A
0069 EA 499 MOV A,R2
006A 3E 500 ADDC A,R6
006B FE 501 MOV R6,A
006C ED 502 MOV A,R5
006D 39 503 ADDC A,R1
006E FD 504 MOV R5,A
006F EC 505 MOV A,R4
0070 38 506 ADDC A,R0
0071 FC 507 MOV R4,A
0072 900000 F 508 MOV DPTR,#sum?146
0075 120000 F 509 LCALL ?C?LSTXDATA
510 ; }
511 ; SOURCE LINE # 55
0078 900000 F 512 MOV DPTR,#i?147+01H
007B E0 513 MOVX A,@DPTR
007C 04 514 INC A
007D F0 515 MOVX @DPTR,A
007E 70A5 516 JNZ ?C0010
0080 900000 F 517 MOV DPTR,#i?147
0083 E0 518 MOVX A,@DPTR
0084 04 519 INC A
0085 F0 520 MOVX @DPTR,A
A51 MACRO ASSEMBLER CRC16 08/03/2009 16:57:29 PAGE 9
0086 521 ?C0016:
0086 809D 522 SJMP ?C0010
0088 523 ?C0011:
524 ; if (length&0x01)//表示长度为单数
525 ; SOURCE LINE # 56
0088 900000 F 526 MOV DPTR,#length?145+01H
008B E0 527 MOVX A,@DPTR
008C 30E030 528 JNB ACC.0,?C0013
529 ; {
530 ; SOURCE LINE # 57
531 ; sum=sum+((*ptr)&0xff00);
532 ; SOURCE LINE # 58
008F A3 533 INC DPTR
0090 E0 534 MOVX A,@DPTR
0091 F8 535 MOV R0,A
0092 A3 536 INC DPTR
0093 E0 537 MOVX A,@DPTR
0094 F9 538 MOV R1,A
0095 A3 539 INC DPTR
0096 E0 540 MOVX A,@DPTR
0097 FA 541 MOV R2,A
0098 A3 542 INC DPTR
0099 E0 543 MOVX A,@DPTR
009A FB 544 MOV R3,A
009B 900000 F 545 MOV DPTR,#ptr?148
009E E0 546 MOVX A,@DPTR
009F FE 547 MOV R6,A
00A0 A3 548 INC DPTR
00A1 E0 549 MOVX A,@DPTR
00A2 F582 550 MOV DPL,A
00A4 8E83 551 MOV DPH,R6
00A6 E0 552 MOVX A,@DPTR
00A7 FE 553 MOV R6,A
00A8 7F00 554 MOV R7,#00H
00AA E4 555 CLR A
00AB FC 556 MOV R4,A
00AC FD 557 MOV R5,A
00AD EF 558 MOV A,R7
00AE 2B 559 ADD A,R3
00AF FF 560 MOV R7,A
00B0 EA 561 MOV A,R2
00B1 3E 562 ADDC A,R6
00B2 FE 563 MOV R6,A
00B3 ED 564 MOV A,R5
00B4 39 565 ADDC A,R1
00B5 FD 566 MOV R5,A
00B6 EC 567 MOV A,R4
00B7 38 568 ADDC A,R0
00B8 FC 569 MOV R4,A
00B9 900000 F 570 MOV DPTR,#sum?146
00BC 120000 F 571 LCALL ?C?LSTXDATA
572 ; }
573 ; SOURCE LINE # 59
00BF 574 ?C0013:
575 ; sum=(sum&0xffff)+((sum>>16)&0xffff); //高16位和低16位相加
576 ; SOURCE LINE # 60
00BF 900000 F 577 MOV DPTR,#sum?146
00C2 E0 578 MOVX A,@DPTR
00C3 FC 579 MOV R4,A
00C4 A3 580 INC DPTR
00C5 E0 581 MOVX A,@DPTR
00C6 FD 582 MOV R5,A
00C7 A3 583 INC DPTR
00C8 E0 584 MOVX A,@DPTR
00C9 FE 585 MOV R6,A
00CA A3 586 INC DPTR
A51 MACRO ASSEMBLER CRC16 08/03/2009 16:57:29 PAGE 10
00CB E0 587 MOVX A,@DPTR
00CC FF 588 MOV R7,A
00CD 7810 589 MOV R0,#010H
00CF 120000 F 590 LCALL ?C?ULSHR
00D2 EF 591 MOV A,R7
00D3 FB 592 MOV R3,A
00D4 EE 593 MOV A,R6
00D5 FA 594 MOV R2,A
00D6 900000 F 595 MOV DPTR,#sum?146
00D9 A3 596 INC DPTR
00DA A3 597 INC DPTR
00DB E0 598 MOVX A,@DPTR
00DC FE 599 MOV R6,A
00DD A3 600 INC DPTR
00DE E0 601 MOVX A,@DPTR
00DF FF 602 MOV R7,A
00E0 EF 603 MOV A,R7
00E1 2B 604 ADD A,R3
00E2 FF 605 MOV R7,A
00E3 EE 606 MOV A,R6
00E4 3A 607 ADDC A,R2
00E5 FE 608 MOV R6,A
00E6 E4 609 CLR A
00E7 33 610 RLC A
00E8 FD 611 MOV R5,A
00E9 E4 612 CLR A
00EA 33 613 RLC A
00EB FC 614 MOV R4,A
00EC 900000 F 615 MOV DPTR,#sum?146
00EF 120000 F 616 LCALL ?C?LSTXDATA
617 ; if(sum&0xffff0000)
618 ; SOURCE LINE # 61
00F2 900000 F 619 MOV DPTR,#sum?146
00F5 E0 620 MOVX A,@DPTR
00F6 FC 621 MOV R4,A
00F7 A3 622 INC DPTR
00F8 E0 623 MOVX A,@DPTR
00F9 FD 624 MOV R5,A
00FA EC 625 MOV A,R4
00FB 4D 626 ORL A,R5
00FC 601B 627 JZ ?C0014
628 ; {//表示有进位
629 ; SOURCE LINE # 62
630 ; sum++;
631 ; SOURCE LINE # 63
00FE 900000 F 632 MOV DPTR,#sum?146
0101 A3 633 INC DPTR
0102 A3 634 INC DPTR
0103 E0 635 MOVX A,@DPTR
0104 FE 636 MOV R6,A
0105 A3 637 INC DPTR
0106 E0 638 MOVX A,@DPTR
0107 2401 639 ADD A,#01H
0109 FF 640 MOV R7,A
010A E4 641 CLR A
010B 3E 642 ADDC A,R6
010C FE 643 MOV R6,A
010D E4 644 CLR A
010E 3D 645 ADDC A,R5
010F FD 646 MOV R5,A
0110 E4 647 CLR A
0111 3C 648 ADDC A,R4
0112 FC 649 MOV R4,A
0113 900000 F 650 MOV DPTR,#sum?146
0116 120000 F 651 LCALL ?C?LSTXDATA
652 ; }
A51 MACRO ASSEMBLER CRC16 08/03/2009 16:57:29 PAGE 11
653 ; SOURCE LINE # 64
0119 654 ?C0014:
655 ; return ( (UINT)((sum)&0xffff));
656 ; SOURCE LINE # 65
0119 900000 F 657 MOV DPTR,#sum?146
011C A3 658 INC DPTR
011D A3 659 INC DPTR
011E E0 660 MOVX A,@DPTR
011F FE 661 MOV R6,A
0120 A3 662 INC DPTR
0121 E0 663 MOVX A,@DPTR
0122 FF 664 MOV R7,A
665 ; // return ( (UINT)(~((sum)&0xffff)));
666 ; } ; SOURCE LINE # 67
0123 667 ?C0015:
0123 22 668 RET
669 ; END OF _cksum
670
671 END
A51 MACRO ASSEMBLER CRC16 08/03/2009 16:57:29 PAGE 12
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
?C0001 . . . . . . C ADDR 0009H R SEG=?PR?_CAL_CRC?CRC16
?C0002 . . . . . . C ADDR 005CH R SEG=?PR?_CAL_CRC?CRC16
?C0003 . . . . . . C ADDR 0017H R SEG=?PR?_CAL_CRC?CRC16
?C0004 . . . . . . C ADDR 0053H R SEG=?PR?_CAL_CRC?CRC16
?C0005 . . . . . . C ADDR 004AH R SEG=?PR?_CAL_CRC?CRC16
?C0006 . . . . . . C ADDR 0030H R SEG=?PR?_CAL_CRC?CRC16
?C0007 . . . . . . C ADDR 0037H R SEG=?PR?_CAL_CRC?CRC16
?C0009 . . . . . . C ADDR 005CH R SEG=?PR?_CAL_CRC?CRC16
?C0010 . . . . . . C ADDR 0025H R SEG=?PR?_CKSUM?CRC16
?C0011 . . . . . . C ADDR 0088H R SEG=?PR?_CKSUM?CRC16
?C0013 . . . . . . C ADDR 00BFH R SEG=?PR?_CKSUM?CRC16
?C0014 . . . . . . C ADDR 0119H R SEG=?PR?_CKSUM?CRC16
?C0015 . . . . . . C ADDR 0123H R SEG=?PR?_CKSUM?CRC16
?C0016 . . . . . . C ADDR 0086H R SEG=?PR?_CKSUM?CRC16
?C?CLDPTR. . . . . C ADDR ----- EXT
?C?ILDIX . . . . . C ADDR ----- EXT
?C?LSTKXDATA . . . C ADDR ----- EXT
?C?LSTXDATA. . . . C ADDR ----- EXT
?C?ULSHR . . . . . C ADDR ----- EXT
?PR?_CAL_CRC?CRC16 C SEG 005DH REL=UNIT
?PR?_CKSUM?CRC16 . C SEG 0124H REL=UNIT
?XD?_CAL_CRC?CRC16 X SEG 0002H REL=UNIT
?XD?_CKSUM?CRC16 . X SEG 000AH REL=UNIT
?_CAL_CRC?BYTE . . X ADDR 0000H R SEG=?XD?_CAL_CRC?CRC16
?_CKSUM?BYTE . . . X ADDR 0000H R SEG=?XD?_CKSUM?CRC16
AC . . . . . . . . B ADDR 00D0H.6 A
ACC. . . . . . . . D ADDR 00E0H A
ACK. . . . . . . . B ADDR 00C0H.1 A
ACKRQ. . . . . . . B ADDR 00C0H.3 A
AD0BUSY. . . . . . B ADDR 00E8H.4 A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -