📄 startup.lst
字号:
002C E4 587 CLR A
002D A3 588 INC DPTR
002E 93 589 MOVC A, @A+DPTR ; Read high byte of address to initialize.
590
591 $IF( INTERNAL_XRAM_LIKE_8XC592 )
MOV B, A
$ELSE
002F F5A0 594 MOV P2, A
595 $ENDIF
596
597 __INIT_LOOP__:
598 ;------------------------------
599 ; Initialization of memory area
600 ;------------------------------
0031 E4 601 CLR A
0032 20D102 602 JB F1, __ZERO_INIT__
0035 A3 603 INC DPTR
0036 93 604 MOVC A, @A+DPTR ; Read initialization value
605
606 __ZERO_INIT__:
0037 20D507 607 JB F0, __XDATA_INIT__
608
003A F6 609 MOV @R0, A
003B 08 610 INC R0
611
612 __SIZE_LOOP__:
003C DFF3 613 DJNZ R7, __INIT_LOOP__
614
615 __SIZE_LOOP_1__:
003E A3 616 INC DPTR
003F 80D1 617 SJMP __PAQ__
618
619 __XDATA_INIT__:
620 $IF( INTERNAL_XRAM_LIKE_8XC592 )
XCH A, DPH
XCH A, B
XCH A, DPH
XCH A, DPL
XCH A, R0
XCH A, DPL
MOVX @DPTR, A
INC DPTR
XCH A, DPH
XCH A, B
XCH A, DPH
XCH A, DPL
XCH A, R0
XCH A, DPL
$ELSE
0041 F2 636 MOVX @R0, A
0042 08 637 INC R0
0043 B800F6 638 CJNE R0, #0, __SIZE_LOOP__
0046 05A0 639 INC P2
640 $ENDIF
0048 80F2 641 SJMP __SIZE_LOOP__
642
643 __BIT_INIT__:
004A E8 644 MOV A, R0
004B 03 645 RR A
004C 03 646 RR A
004D 03 647 RR A
004E 541F 648 ANL A, #1FH
0050 2420 649 ADD A, #20H
0052 F9 650 MOV R1, A ; Byte address
0053 E8 651 MOV A, R0
0054 5407 652 ANL A, #7H ; Bit offset
0056 F8 653 MOV R0, A
0057 E4 654 CLR A
0058 D3 655 SETB C
0059 33 656 RLC A
005A B80002 657 CJNE R0, #00, __MASK_GEN__
005D 8003 658 SJMP __MASK_APPLY__
659
660 ;---------------------------------------------
661 ; Generate mask to initialize the correct bit
662 ;---------------------------------------------
663 __MASK_GEN__:
005F 33 664 RLC A
0060 D8FD 665 DJNZ R0, __MASK_GEN__
666
667 ;------------------------------------------
668 ; Initialize the correct bit with the mask
669 ;------------------------------------------
670 __MASK_APPLY__:
0062 47 671 ORL A, @R1
0063 F7 672 MOV @R1, A
0064 80D8 673 SJMP __SIZE_LOOP_1__
674
675 __END_OF_INIT__:
676
677 ENDIF
678
679
680 ;-------------------------------------------------------------------------------
681 ; 8. If selected, initialize the chips I/O registers. This applies to all
682 ; chips and all memory models. You can save a few bytes by eliminating
683 ; this code for some applications.
684
685 IF INITIO <> 0
0066 758920 686 MOV TMOD, #20H
0069 758840 687 MOV TCON, #40H
006C 759852 688 MOV SCON, #52H
006F 758DE8 689 MOV TH1 , # LOW ( 232 )
690 ENDIF
691
692
693 ;-------------------------------------------------------------------------------
694 ; 9. If selected, initialize the external stack.
695 ; Note: (** For 751 use **) Do not use this section the 751 processors.
696 IF XSTACK <> 0
EXTRN DATA ( SPX )
EXTRN XDATA (_XSTK0)
XSTACKLEN SET 0100H ; an initial length for the external stack
MOV SPX, #LOW(_XSTK0)-1
ENDIF
0072 750000 F 702 MOV HPD_ADDR, #_INITP2? ;SC030313 MOV P2, #_INITP2?
703
704 ; (** For 751 use **) CUT TO HERE ---------- ^^^^^^^ ----------
705
706
0075 020000 F 707 LJMP MAIN ; (** For 751 use **) changed the LJMP to an AJMP
708
709 END ; End of module
MACRO ASSEMBLER STARTUP 08/25/05 17:07:04 PAGE 0
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES REFERENCES
__SIZE_LOOP_1__. . C ADDR 003EH R SEG=?PR?C51_STARTUP? 615# 673
XDATASTART . . . . N NUMB 0000h 348#
IRDACON. . . . . . D ADDR 00CEH A 240#
P4SFS0 . . . . . . D ADDR 0092H A 172#
RCAP2H . . . . . . D ADDR 00CBH A 163#
DPL. . . . . . . . D ADDR 0082H A 95#
P0 . . . . . . . . D ADDR 0080H A 87#
__MASK_GEN__ . . . C ADDR 005FH R SEG=?PR?C51_STARTUP? 657 663# 665
__XDATA_INIT__ . . C ADDR 0041H R SEG=?PR?C51_STARTUP? 607 619#
SM01 . . . . . . . B ADDR 00D8H.7 A 282#
SBUF1. . . . . . . D ADDR 00D9H A 183#
ACON . . . . . . . D ADDR 0097H A 179#
P4SFS1 . . . . . . D ADDR 0093H A 173#
P1 . . . . . . . . D ADDR 0090H A 88#
?C_INITSEGSTART. . C ADDR ----- EXT 535# 543
IDATALEN . . . . . N NUMB 00FFh 320# 490 492
SM11 . . . . . . . B ADDR 00D8H.6 A 283#
CP_RL2 . . . . . . B ADDR 00C8H.0 A 269#
EXEN2. . . . . . . B ADDR 00C8H.3 A 266#
B. . . . . . . . . D ADDR 00F0H A 93#
P2 . . . . . . . . D ADDR 00A0H A 89# 594 639
SM21 . . . . . . . B ADDR 00D8H.5 A 284#
PS . . . . . . . . B ADDR 00B8H.4 A 136#
SP . . . . . . . . D ADDR 0081H A 94# 465 479
P3 . . . . . . . . D ADDR 00B0H A 90#
S1CON. . . . . . . D ADDR 00DCH A 226#
WDKEY. . . . . . . D ADDR 00AEH A 218#
PCACON0. . . . . . D ADDR 00A4H A 188#
SCON1. . . . . . . D ADDR 00D8H A 182#
P4 . . . . . . . . D ADDR 00C0H A 168#
RCAP2L . . . . . . D ADDR 00CAH A 162#
T0 . . . . . . . . B ADDR 00B0H.4 A 145#
AC . . . . . . . . B ADDR 00D0H.6 A 113#
MAIN . . . . . . . C ADDR ----- EXT 300# 707
PCACON1. . . . . . D ADDR 00BCH A 192#
REN. . . . . . . . B ADDR 0098H.4 A 154#
T1 . . . . . . . . B ADDR 00B0H.5 A 144#
OV . . . . . . . . B ADDR 00D0H.2 A 117#
T2CON. . . . . . . D ADDR 00C8H A 161#
EA . . . . . . . . B ADDR 00A8H.7 A 129#
ACC. . . . . . . . D ADDR 00E0H A 92#
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -