⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mx51bank.lst

📁 用keil便宜代码超过64k的程序例子
💻 LST
字号:
AX51 MACRO ASSEMBLER  MX51BANK                                                              08/16/05 09:17:23 PAGE     1


MACRO ASSEMBLER AX51 V2.13
OBJECT MODULE PLACED IN MX51BANK.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\AX51.EXE MX51BANK.A51 MOD_MX51 SET(LARGE) DEBUG EP

LOC    OBJ             LINE     SOURCE

                          1     $nocond  MOD_MX51 NOLINES
                          2     ;------------------------------------------------------------------------------
                          3     ;  This file is part of the PK51 Professional Developers Kit
                          4     ;  Support for large programs on Philips 80C51MX architecture
                          5     ;  Copyright (c) 2000-2001 Keil Elektronik GmbH and Keil Software, Inc.
                          6     ;  Version 1.02
                          7     ;------------------------------------------------------------------------------
                          8     ;************************ Configuration Section *******************************
                          9     ;  Program Code in expanded memory is supported via the code banking machnism
                         10     ;  known from the classic 8051 architecture.  You need to specify the number
                         11     ;  of code banks that are required for your application.
                         12     ;
 0002                    13     ?B_NBANKS       EQU     2        ; Define max. Number of Banks
                         14     ;                                ; the max. value for ?B_BANKS is 16
                         15     ;******************************************************************************
                         16     ;                                                                             *
 0002                    17     ?B_MODE         EQU     2        ; 2 for using Philips 80C51MX address lines
                         18     
                         19     ; Define SFR Registers
 00E0                    20     ACC     DATA    0E0H
 00D0                    21     PSW     DATA    0D0H
 0082                    22     DPL     DATA    82H
 0083                    23     DPH     DATA    83H
                         24     
                         25     PUBLIC  ?B_BANKSTARTSEG
 0080                    26     ?B_BANKSTARTSEG EQU     080H
 0000                    27     ?B_FIRSTBIT     EQU     0        ; set to  0
                         28     
                         29     
                         30                     NAME    ?BANK?SWITCHING
                         31     
                         32                     PUBLIC  ?B_NBANKS, ?B_MODE, ?B_CURRENTBANK, ?B_MASK
                         33                     PUBLIC  ?B_FACTOR
                         34                     PUBLIC  SWITCHBANK
                         35     
 0001                    36     ?B_FACTOR       EQU     1 SHL ?B_FIRSTBIT
                         37     
------                   38     ?C_INITSEG      SEGMENT   CODE          ; Segment zur Initialisierung
------                   39                     RSEG    ?C_INITSEG
000000 01                40                     DB      01H             ; IData
000001 00         F      41                     DB      ?B_CURRENTBANK  ; Init Current Bank
000002 00                42                     DB      0               ; Set to Zero
                         43     
------                   44     ?BANK?DATA      SEGMENT DATA
------                   45                     RSEG    ?BANK?DATA
000000                   46     ?B_CURRENTBANK: DS      1
                         47     
                         48     ; generate Mask and Bank Number Information
                         49     IF      ?B_NBANKS <= 2
 0001                    50       MASK          EQU     00000001B
                                ENDIF     
                         60     
 0001                    61     ?B_MASK         EQU     MASK SHL ?B_FIRSTBIT
                         62     
                         63     BANKN           MACRO   N
                         64     BANK&N           EQU     N SHL ?B_FIRSTBIT
                         65                     ENDM
                         66     
AX51 MACRO ASSEMBLER  MX51BANK                                                              08/16/05 09:17:23 PAGE     2

 0000                    67     CNT             SET     0
                         68     
                         69                     REPT    ?B_NBANKS
                         70                     BANKN   %CNT
                         71     CNT             SET     CNT+1
                         79     
                         80       ; Convert Bank No in Accu to Address * 16
                         81       IF  ?B_FIRSTBIT = 0
                         82       CONVBANKNO    MACRO
                         83                     SWAP    A
                         84                     ENDM
                         85       ENDIF
                         86     
                                  ENDIF
                         93     
                                  ENDIF
                        100     
                                  ENDIF
                        106     
                                  ENDIF
                        111     
                                  ENDIF
                        117     
                                  ENDIF
                        124     
                                  ENDIF
                        131     
                        132     
                        133     SELECT          MACRO   N
                        134     LOCAL           XLABEL, YLABEL
                        135     
                        136                     PUBLIC  ?B_BANK&N
                        137     ?B_BANK&N:      
                        138                     MOV     A,?B_CURRENTBANK
                        139                     ANL     A,#?B_MASK
                        140                     CJNE    A,#BANK&N,XLABEL
                        141                     SJMP    YLABEL
                        142     
                        143     XLABEL:         CONVBANKNO         ; Convert Bank Number to Address
                        144                     PUSH    ACC
                        145                     MOV     A,#HIGH ?BANK?SWITCH
                        146                     PUSH    ACC
                        147     YLABEL:         PUSH    DPL
                        148                     PUSH    DPH
                        149                     LJMP    ?B_SWITCH&N
                        150     
                        151                     ENDM
                        152     
                        153     
------                  154     ?BANK?SELECT    SEGMENT  CODE
                        155     
------                  156                     RSEG    ?BANK?SELECT
 0000                   157     CNT             SET     0
                        158     
                        159                     REPT    ?B_NBANKS
                        160                     SELECT  %CNT
                        161     CNT             SET     CNT+1
                        162     
                        204     
                        205     
                        206     SWITCH          MACRO   N
                        207                     ORG     N * 16
                        208                     PUBLIC  ?B_SWITCH&N
                        209         ?B_SWITCH&N:
                        210                     ORL     ?B_CURRENTBANK,#?B_MASK
                        211         IF  N <> (?B_NBANKS-1)
AX51 MACRO ASSEMBLER  MX51BANK                                                              08/16/05 09:17:23 PAGE     3

                        212                     ANL     ?B_CURRENTBANK,#(BANK&N OR NOT ?B_MASK) 
                        213         ENDIF
                        214                     
                        215                     DB      0A5H            ; ESC
                        216                     DB      002H            ; EJMP Instruction
                        217                     DB      LOW (N+?B_BANKSTARTSEG)
                        218                     DW      SWITCHDONE
                        219                     ENDM
                        220     
                        221     
------                  222     ?BANK?SWITCH    SEGMENT  CODE  PAGE
                        223     
------                  224                     RSEG    ?BANK?SWITCH
 0000                   225     CNT             SET     0
                        226     
                        227                     REPT    ?B_NBANKS
                        228                     SWITCH  %CNT
                        229     
                        230     CNT             SET     CNT+1
                        262     
------                  263     RSEG            ?BANK?SELECT
                        264     
                        265     ;************************  SWITCHBANK FUNCTION  *******************************
                        266     ;                                                                             *
                        267     ; SWITCHBANK allows use of bank-switching for C programs                      *
                        268     ;                                                                             *
                        269     ; prototype:   extern switchbank (unsigned char bank_number);                 *
                        270     ;                                                                             *
                        271     ;******************************************************************************
                        272     
00002E EF               273     SWITCHBANK:     MOV     A,R7
00002F C4               274                     SWAP    A
000030 900000     F     275                     MOV     DPTR,#?BANK?SWITCH
000033 73               276                     JMP     @A+DPTR
000034 22               277     SWITCHDONE:     RET
                        278     
                        279                     END
AX51 MACRO ASSEMBLER  MX51BANK                                                              08/16/05 09:17:23 PAGE     4

SYMBOL TABLE LISTING
------ ----- -------


N A M E                       T Y P E  V A L U E     ATTRIBUTES

??0000 . . . . . . . . . . .  C  ADDR  0009H     R   SEG=?BANK?SELECT
??0001 . . . . . . . . . . .  C  ADDR  0010H     R   SEG=?BANK?SELECT
??0002 . . . . . . . . . . .  C  ADDR  0020H     R   SEG=?BANK?SELECT
??0003 . . . . . . . . . . .  C  ADDR  0027H     R   SEG=?BANK?SELECT
?B_BANK0 . . . . . . . . . .  C  ADDR  0000H     R   SEG=?BANK?SELECT
?B_BANK1 . . . . . . . . . .  C  ADDR  0017H     R   SEG=?BANK?SELECT
?B_BANKSTARTSEG. . . . . . .  N  NUMB  0080H     A   
?B_CURRENTBANK . . . . . . .  D  ADDR  0000H     R   SEG=?BANK?DATA
?B_FACTOR. . . . . . . . . .  N  NUMB  0001H     A   
?B_FIRSTBIT. . . . . . . . .  N  NUMB  0000H     A   
?B_MASK. . . . . . . . . . .  N  NUMB  0001H     A   
?B_MODE. . . . . . . . . . .  N  NUMB  0002H     A   
?B_NBANKS. . . . . . . . . .  N  NUMB  0002H     A   
?B_SWITCH0 . . . . . . . . .  C  ADDR  0000H     R   SEG=?BANK?SWITCH
?B_SWITCH1 . . . . . . . . .  C  ADDR  0010H     R   SEG=?BANK?SWITCH
?BANK?DATA . . . . . . . . .  D  SEG   000001H       REL=UNIT, ALN=BYTE
?BANK?SELECT . . . . . . . .  C  SEG   000035H       REL=UNIT, ALN=BYTE
?BANK?SWITCH . . . . . . . .  C  SEG   000018H       REL=UNIT, ALN=PAGE
?BANK?SWITCHING. . . . . . .  -- ----  -------       
?C_INITSEG . . . . . . . . .  C  SEG   000003H       REL=UNIT, ALN=BYTE
ACC. . . . . . . . . . . . .  D  ADDR  00E0H     A   
BANK0. . . . . . . . . . . .  N  NUMB  0000H     A   
BANK1. . . . . . . . . . . .  N  NUMB  0001H     A   
CNT. . . . . . . . . . . . .  N  NUMB  0002H     A   
DPH. . . . . . . . . . . . .  D  ADDR  0083H     A   
DPL. . . . . . . . . . . . .  D  ADDR  0082H     A   
MASK . . . . . . . . . . . .  N  NUMB  0001H     A   
PSW. . . . . . . . . . . . .  D  ADDR  00D0H     A   
SWITCHBANK . . . . . . . . .  C  ADDR  002EH     R   SEG=?BANK?SELECT
SWITCHDONE . . . . . . . . .  C  ADDR  0034H     R   SEG=?BANK?SELECT


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S).

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -