📄 start390.lst
字号:
398
------ 399 ?C_C51STARTUP SEGMENT CODE
400
401 IF SA = 1
IF IDM = 0
?STACK SEGMENT XDATA AT 0F000H
ENDIF
IF IDM = 1
?STACK SEGMENT XDATA AT 00000H
ENDIF
IF IDM = 2
?STACK SEGMENT HDATA AT 0400000H
ENDIF
IF IDM = 3
__ERROR__ "Extended Stack not possible when on-chip XRAM is mapped as code & xdata"
ENDIF
RSEG ?STACK
DS 1024
ELSE
422
------ 423 ?STACK SEGMENT IDATA
424
------ 425 RSEG ?STACK
000000 426 DS 1
427 ENDIF
428
429 EXTRN CODE (?C_START)
430 PUBLIC ?C_STARTUP
431
000000 432 ?C_CPURESET?0 SEGMENT CODE OFFS 0
------ 433 RSEG ?C_CPURESET?0
434
000000 435 ?C_STARTUP LABEL NEAR
000000 02 436 DB 02H ; LJMP in Classic 8051 Mode
000001 0000 F 437 DW WORD0 STARTUP1
------ 438 RSEG ?C_C51STARTUP
439
000000 440 STARTUP1:
441
000000 75C7AA 442 MOV TA,#0xAA ; Enable access to P4CNT
000003 75C755 443 MOV TA,#0x55
003F 444 P4CNT_VAL EQU (SBCAN SHL 6) OR (PCES SHL 3) OR (P4PF)
000006 75923F 445 MOV P4CNT,#P4CNT_VAL
446
000009 75C7AA 447 MOV TA,#0xAA ; Enable access to P5CNT
00000C 75C755 448 MOV TA,#0x55
0007 449 P5CNT_VAL EQU (SP1EC SHL 5) OR (CX_IO SHL 3) OR (P5PF)
00000F 75A207 450 MOV P5CNT,#P5CNT_VAL
451
452
453
000012 75C7AA 454 MOV TA,#0xAA ; Enable access to ACON
AX51 MACRO ASSEMBLER START390 04/27/04 18:11:32 PAGE 8
000015 75C755 455 MOV TA,#0x55
0002 456 ACON_VAL EQU (2 OR (SA SHL 2)) ; 22-bit contigious mode, SA bit
000018 759D02 457 MOV ACON,#ACON_VAL
458
00001B 75C7AA 459 MOV TA,#0xAA ; Enable access to MCON
00001E 75C755 460 MOV TA,#0x55
0000 461 MCON_VAL SET (IDM SHL 6) OR (CMA SHL 5) OR (PDCE3 SHL 3) OR (PDCE2 SHL 2)
0000 462 MCON_VAL SET MCON_VAL OR (PDCE1 SHL 1) OR (PDCE0)
000021 75C600 463 MOV MCON,#MCON_VAL
464
465
466 IF IDATALEN <> 0
000024 787F 467 MOV R0,#IDATALEN - 1
000026 E4 468 CLR A
000027 F6 469 IDATALOOP: MOV @R0,A
000028 D8FD 470 DJNZ R0,IDATALOOP
471 ENDIF
472
473 IF XDATALEN <> 0
MOV DPTR,#XDATASTART
MOV R7,#BYTE0 (XDATALEN)
IF (BYTE0 (XDATALEN)) <> 0
MOV R6,#(BYTE1 XDATALEN) +1
ELSE
MOV R6,#BYTE1 (XDATALEN)
ENDIF
IF (BYTE1 (XDATALEN)) <> 0
MOV R5,#(BYTE2 XDATALEN) +1
ELSE
MOV R5,#BYTE2 (XDATALEN)
ENDIF
CLR A
XDATALOOP: MOVX @DPTR,A
INC DPTR
DJNZ R7,XDATALOOP
DJNZ R6,XDATALOOP
DJNZ R5,XDATALOOP
ENDIF
493
494 IF PPAGEENABLE <> 0
MOV P2,#PPAGE
MOV MXAX,#0
ENDIF
498
499 IF PDATALEN <> 0
MOV R0,#PDATASTART
MOV R7,#LOW (PDATALEN)
CLR A
PDATALOOP: MOVX @R0,A
INC R0
DJNZ R7,PDATALOOP
ENDIF
507
508 IF IBPSTACK <> 0
EXTRN DATA (?C_IBP)
MOV ?C_IBP,#LOW IBPSTACKTOP
ENDIF
513
514 IF XBPSTACK <> 0
EXTRN DATA (?C_XBP)
MOV ?C_XBP,#HIGH XBPSTACKTOP
MOV ?C_XBP+1,#LOW XBPSTACKTOP
ENDIF
520
AX51 MACRO ASSEMBLER START390 04/27/04 18:11:32 PAGE 9
521 IF PBPSTACK <> 0
EXTRN DATA (?C_PBP)
MOV ?C_PBP,#LOW PBPSTACKTOP
ENDIF
525
526 IF SA = 1
MOV SP,#BYTE0 (?STACK-1)
MOV ESP,#BYTE1 (?STACK-1)
ELSE
00002A 758100 F 530 MOV SP,#?STACK-1
531 ENDIF
00002D 02000000 E 532 LJMP ?C_START
533
534 END
AX51 MACRO ASSEMBLER START390 04/27/04 18:11:32 PAGE 10
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
?C_C51STARTUP . . . . . . . . C SEG 000031H REL=UNIT, ALN=BYTE
?C_CPURESET?0 . . . . . . . . C SEG 000003H REL=OFS, ALN=BYTE
?C_START. . . . . . . . . . . C ADDR ------- EXT
?C_STARTUP. . . . . . . . . . C ADDR 0000H R SEG=?C_CPURESET?0
?STACK. . . . . . . . . . . . I SEG 000001H REL=UNIT, ALN=BYTE
AC. . . . . . . . . . . . . . B ADDR 00D0H.6 A
ACC . . . . . . . . . . . . . D ADDR 00E0H A
ACON. . . . . . . . . . . . . D ADDR 009DH A
ACON_VAL. . . . . . . . . . . HC ADDR 0002H A
AP. . . . . . . . . . . . . . D ADDR 009CH A
B . . . . . . . . . . . . . . D ADDR 00F0H A
C0C . . . . . . . . . . . . . D ADDR 00A3H A
C0IE. . . . . . . . . . . . . B ADDR 00E8H.6 A
C0IP. . . . . . . . . . . . . B ADDR 00F8H.6 A
C0IR. . . . . . . . . . . . . D ADDR 00A5H A
C0M10C. . . . . . . . . . . . D ADDR 00B7H A
C0M11C. . . . . . . . . . . . D ADDR 00BBH A
C0M12C. . . . . . . . . . . . D ADDR 00BCH A
C0M13C. . . . . . . . . . . . D ADDR 00BDH A
C0M14C. . . . . . . . . . . . D ADDR 00BEH A
C0M15C. . . . . . . . . . . . D ADDR 00BFH A
C0M1C . . . . . . . . . . . . D ADDR 00ABH A
C0M2C . . . . . . . . . . . . D ADDR 00ACH A
C0M3C . . . . . . . . . . . . D ADDR 00ADH A
C0M4C . . . . . . . . . . . . D ADDR 00AEH A
C0M5C . . . . . . . . . . . . D ADDR 00AFH A
C0M6C . . . . . . . . . . . . D ADDR 00B3H A
C0M7C . . . . . . . . . . . . D ADDR 00B4H A
C0M8C . . . . . . . . . . . . D ADDR 00B5H A
C0M9C . . . . . . . . . . . . D ADDR 00B6H A
C0RE. . . . . . . . . . . . . D ADDR 00A7H A
C0RMS0. . . . . . . . . . . . D ADDR 0096H A
C0RMS1. . . . . . . . . . . . D ADDR 0097H A
C0S . . . . . . . . . . . . . D ADDR 00A4H A
C0TE. . . . . . . . . . . . . D ADDR 00A6H A
C0TMA0. . . . . . . . . . . . D ADDR 009EH A
C0TMA1. . . . . . . . . . . . D ADDR 009FH A
C1C . . . . . . . . . . . . . D ADDR 00E3H A
C1IE. . . . . . . . . . . . . B ADDR 00E8H.5 A
C1IP. . . . . . . . . . . . . B ADDR 00F8H.5 A
C1IR. . . . . . . . . . . . . D ADDR 00E5H A
C1M10C. . . . . . . . . . . . D ADDR 00F7H A
C1M11C. . . . . . . . . . . . D ADDR 00FBH A
C1M12C. . . . . . . . . . . . D ADDR 00FCH A
C1M13C. . . . . . . . . . . . D ADDR 00FDH A
C1M14C. . . . . . . . . . . . D ADDR 00FEH A
C1M15C. . . . . . . . . . . . D ADDR 00FFH A
C1M1C . . . . . . . . . . . . D ADDR 00EBH A
C1M2C . . . . . . . . . . . . D ADDR 00ECH A
C1M3C . . . . . . . . . . . . D ADDR 00EDH A
C1M4C . . . . . . . . . . . . D ADDR 00EEH A
C1M5C . . . . . . . . . . . . D ADDR 00EFH A
C1M6C . . . . . . . . . . . . D ADDR 00F3H A
C1M7C . . . . . . . . . . . . D ADDR 00F4H A
C1M8C . . . . . . . . . . . . D ADDR 00F5H A
C1M9C . . . . . . . . . . . . D ADDR 00F6H A
C1RE. . . . . . . . . . . . . D ADDR 00E7H A
C1RMS0. . . . . . . . . . . . D ADDR 00D6H A
C1RMS1. . . . . . . . . . . . D ADDR 00D7H A
C1S . . . . . . . . . . . . . D ADDR 00E4H A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -