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

📄 l51_bank.lst

📁 this file for bank in keil
💻 LST
📖 第 1 页 / 共 2 页
字号:
                     344     
                               ENDIF
                     351     
                               ENDIF
                     357     
                     358     
                     359       ; Macro code to select the 'N'
                     360       SWITCH        MACRO   N
                     361                     ORG     N * 8
                     362                     PUBLIC  ?B_SWITCH&N
                     363       ?B_SWITCH&N:
                     364         IF  N <> 0
                     365                     ORL     ?B_CURRENTBANK,#?B_MASK
                     366         ENDIF
                     367         IF  N <> (?B_NBANKS-1)
                     368                     ANL     ?B_CURRENTBANK,#(BANK&N OR NOT ?B_MASK) 
                     369         ENDIF
                     370                     RET
                     371                     ENDM
                     372     
                     373     ENDIF
                     374     
                     375     
                     376     SELECT          MACRO   N
                     377     LOCAL           XLABEL, YLABEL
                     378     
                     379                     PUBLIC  ?B_BANK&N
                     380     ?B_BANK&N:      
                     381                     MOV     A,?B_CURRENTBANK
                     382                     ANL     A,#?B_MASK
                     383                     CONVBANKNO         ; Convert Bank Number to Address
                     384                     PUSH    ACC
                     385                     MOV     A,#HIGH ?BANK?SWITCH
                     386                     PUSH    ACC
A51 MACRO ASSEMBLER  L51_BANK                                                             02/21/2005 09:48:31 PAGE     4

                     387                     PUSH    DPL
                     388                     PUSH    DPH
                     389                     LJMP    ?B_SWITCH&N
                     390                     ENDM
                     391     
                     392     
                     393     ?BANK?SELECT    SEGMENT  CODE
                     394     
----                 395                     RSEG    ?BANK?SELECT
  0000               396     CNT             SET     0
                     397     
                     398                     REPT    ?B_NBANKS
                     399                     SELECT  %CNT
                     400     CNT             SET     CNT+1
                     401     
                     402                     ENDM
                     403+1                   SELECT  %CNT
                     420+1                   SELECT  %CNT
                     437     
                     438     
                     439     
                     440     
                     441     ?BANK?SWITCH    SEGMENT  CODE  PAGE
                     442     
----                 443                     RSEG    ?BANK?SWITCH
  0000               444     CNT             SET     0
                     445     
                     446                     REPT    ?B_NBANKS
                     447                     SWITCH  %CNT
                     448     
                     449     CNT             SET     CNT+1
                     450                     ENDM
                     451+1                   SWITCH  %CNT
                     464+1                   SWITCH  %CNT
                     477     
                     478     
                               ENDIF
                     508     
                     509     
                     510     ENDIF  ; close block IF ?B_MODE = 0 *******************************************
                     511     
                     512     
                             ENDIF  ; close block IF ?B_MODE = 1 *******************************************
                     754     
                     755     
                             ENDIF  ; close block IF ?B_MODE = 4 *******************************************
                     828     
----                 829                     RSEG    ?BANK?SELECT
                     830     
                     831     ;************************  SWITCHBANK FUNCTION  *******************************
                     832     ;                                                                             *
                     833     ; SWITCHBANK allows use of bank-switching for C programs                      *
                     834     ;                                                                             *
                     835     ; prototype:   extern switchbank (unsigned char bank_number);                 *
                     836     ;                                                                             *
                     837     ;******************************************************************************
                     838                     PUBLIC  _SWITCHBANK, ?B_SWITCHBANK_A
                     839     
0026 EF              840     _SWITCHBANK:    MOV     A,R7
                     841     
                     842     IF  ?B_MODE = 0 ;**************************************************************
                     843     
0027                 844     ?B_SWITCHBANK_A:
                             ENDIF
                     849     
                     850     IF ?B_NBANKS <= 16 AND ?B_RTX = 0
A51 MACRO ASSEMBLER  L51_BANK                                                             02/21/2005 09:48:31 PAGE     5

0027 C4              851                     SWAP    A
0028 03              852                     RR      A
                     853     ENDIF
0029 900000   F      854                     MOV     DPTR,#?BANK?SWITCH
002C 73              855                     JMP     @A+DPTR
                     856     
                     857     ENDIF  ; close block IF ?B_MODE = 0 *******************************************
                     858     
                             ENDIF  ; close block IF ?B_MODE = 1 *******************************************
                     874     
                             ENDIF  ; close block IF ?B_MODE = 4 *******************************************
                     904     
                     905     
                             ENDIF  ; close block IF ?B_VAR_BANKING ****************************************
                    1318     
A51 MACRO ASSEMBLER  L51_BANK                                                             02/21/2005 09:48:31 PAGE     6

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


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

?BANK?SELECT . . .  C SEG    002DH       REL=UNIT
?BANK?SWITCH . . .  C SEG    000CH       REL=PAGE
?BANK?SWITCHING. .  N NUMB   -----       
?B_BANK0 . . . . .  C ADDR   0000H   R   SEG=?BANK?SELECT
?B_BANK1 . . . . .  C ADDR   0013H   R   SEG=?BANK?SELECT
?B_CURRENTBANK . .  D ADDR   0090H   A   
?B_FACTOR. . . . .  N NUMB   0001H   A   
?B_FIRSTBIT. . . .  N NUMB   0000H   A   
?B_MASK. . . . . .  N NUMB   0001H   A   
?B_MODE. . . . . .  N NUMB   0000H   A   
?B_NBANKS. . . . .  N NUMB   0002H   A   
?B_PORT. . . . . .  D ADDR   0090H   A   
?B_RST_BANK. . . .  N NUMB   00FFH   A   
?B_RTX . . . . . .  N NUMB   0000H   A   
?B_SWITCH0 . . . .  C ADDR   0000H   R   SEG=?BANK?SWITCH
?B_SWITCH1 . . . .  C ADDR   0008H   R   SEG=?BANK?SWITCH
?B_SWITCHBANK_A. .  C ADDR   0027H   R   SEG=?BANK?SELECT
?B_VAR_BANKING . .  N NUMB   0000H   A   
ACC. . . . . . . .  D ADDR   00E0H   A   
B. . . . . . . . .  D ADDR   00F0H   A   
BANK0. . . . . . .  N NUMB   0000H   A   
BANK1. . . . . . .  N NUMB   0001H   A   
B_SWITCH_SIZE. . .    ----   -----       
CNT. . . . . . . .  N NUMB   0002H   A   
DPH. . . . . . . .  D ADDR   0083H   A   
DPL. . . . . . . .  D ADDR   0082H   A   
EA . . . . . . . .  B ADDR   00A8H.7 A   
IE . . . . . . . .  D ADDR   00A8H   A   
LONG_MACRO . . . .    ----   -----       
MASK . . . . . . .  N NUMB   0001H   A   
N. . . . . . . . .    ----   -----       
P1 . . . . . . . .  D ADDR   0090H   A   
SAVEA. . . . . . .    ----   -----       
_SWITCHBANK. . . .  C ADDR   0026H   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 + -