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

📄 l51_bank.lst

📁 C8051F120与串口、并口、D12、USB、LCD应用
💻 LST
📖 第 1 页 / 共 2 页
字号:
  0003               147     ?B_MASK         EQU     MASK
                     148     
                     149     ?BANK?SELECT    SEGMENT CODE
                     150     ?BANK?DATA      SEGMENT DATA
----                 151                     RSEG    ?BANK?DATA
0000                 152     ?B_CURRENTBANK: DS      1
                     153     
                     154     BANK            MACRO   N
                     155                     PUBLIC  ?B_BANK&N
                     156     ?B_BANK&N:
                     157                     PUSH    ?B_CURRENTBANK
                     158                     MOV     A,#HIGH ?BANK?SWITCH
                     159                     PUSH    ACC
                     160                     PUSH    DPL
                     161                     PUSH    DPH
                     162                     ENDM
                     163     
                     164     SWITCH          MACRO   N
                     165                     PUBLIC  ?B_SWITCH&N
                     166     ?B_SWITCH&N:
                     167                     MOV     ?B_CURRENTBANK,#LOW ?B_SWITCH&N
                     168                     SWITCH&N
                     169                     RET
                     170                     ENDM
                     171     
                     172     
                     173     ?BANK?SWITCH    SEGMENT CODE PAGE
                     174     
----                 175                     RSEG    ?BANK?SWITCH
  0000               176     B_SWITCH_START  EQU     $
                     177     ; Generate ?B_SWITCHn functions
  0000               178     CNT             SET     0
                     179     
                     180                     REPT    ?B_NBANKS
                     181                     BANK    %CNT
                     182                     SWITCH  %CNT
                     183     CNT             SET     CNT+1
                     184                     ENDM
                     185+1                   BANK    %CNT
                     193+1                   SWITCH  %CNT
                     201+1                   BANK    %CNT
                     209+1                   SWITCH  %CNT
                     217+1                   BANK    %CNT
                     225+1                   SWITCH  %CNT
                     233+1                   BANK    %CNT
                     241+1                   SWITCH  %CNT
                     249     
  0044               250     B_SWITCH_SIZE   EQU     $-B_SWITCH_START
                     251     
                             ENDIF
                     255     
                     256     
A51 MACRO ASSEMBLER  L51_BANK                                                             04/02/2007 08:52:20 PAGE     4

                     257     
                     258     COMMON_XDATA    MACRO     ; Switch back to common XDATA bank
                     259                     SWITCH1                        ; Switch to XDATA Bank 1
                     260                     ENDM
                     261     
                     262     
                     263     ENDIF  ; close block IF ?B_MODE = 4 *******************************************
                     264     
----                 265                     RSEG    ?BANK?SELECT
                     266     
                     267     ;************************  SWITCHBANK FUNCTION  *******************************
                     268     ;                                                                             *
                     269     ; SWITCHBANK allows use of bank-switching for C programs                      *
                     270     ;                                                                             *
                     271     ; prototype:   extern switchbank (unsigned char bank_number);                 *
                     272     ;                                                                             *
                     273     ;******************************************************************************
                     274                     PUBLIC  _SWITCHBANK
                     275     
0000 EF              276     _SWITCHBANK:    MOV     A,R7
                     277     
                     278     IF  ?B_MODE = 4 ;**************************************************************
                     279     
                     280     S_ENTRY         MACRO   N
                     281                     DB      LOW ?B_SWITCH&N
                     282                     ENDM
                     283     
0001                 284     _SWITCHBANK_A:
0001 240A            285                     ADD     A,#switch_tab+3-$
0003 83              286                     MOVC    A,@A+PC
0004 900000   F      287                     MOV     DPTR,#?BANK?SWITCH
0007 73              288                     JMP     @A+DPTR
                     289     
0008                 290     switch_tab:     
  0000               291     CNT             SET     0
                     292     
                     293                     REPT    ?B_NBANKS
                     294                     S_ENTRY %CNT
                     295     CNT             SET     CNT+1
                     296                     ENDM
                     297+1                   S_ENTRY %CNT
                     300+1                   S_ENTRY %CNT
                     303+1                   S_ENTRY %CNT
                     306+1                   S_ENTRY %CNT
                     309     ENDIF  ; close block IF ?B_MODE = 4 *******************************************
                     310     
                     311     
A51 MACRO ASSEMBLER  L51_BANK                                                             04/02/2007 08:52:20 PAGE     5

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


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

?BANK?DATA . . . .  D SEG    0001H       REL=UNIT
?BANK?SELECT . . .  C SEG    000CH       REL=UNIT
?BANK?SWITCH . . .  C SEG    0044H       REL=PAGE
?BANK?SWITCHING. .  N NUMB   -----       
?B_BANK0 . . . . .  C ADDR   0000H   R   SEG=?BANK?SWITCH
?B_BANK1 . . . . .  C ADDR   0011H   R   SEG=?BANK?SWITCH
?B_BANK2 . . . . .  C ADDR   0022H   R   SEG=?BANK?SWITCH
?B_BANK3 . . . . .  C ADDR   0033H   R   SEG=?BANK?SWITCH
?B_CURRENTBANK . .  D ADDR   0000H   R   SEG=?BANK?DATA
?B_FACTOR. . . . .  N NUMB   0000H   A   
?B_FIRSTBIT. . . .  N NUMB   0000H   A   
?B_MASK. . . . . .  N NUMB   0003H   A   
?B_MODE. . . . . .  N NUMB   0004H   A   
?B_NBANKS. . . . .  N NUMB   0004H   A   
?B_RST_BANK. . . .  N NUMB   00FFH   A   
?B_RTX . . . . . .  N NUMB   0000H   A   
?B_SWITCH0 . . . .  C ADDR   000AH   R   SEG=?BANK?SWITCH
?B_SWITCH1 . . . .  C ADDR   001BH   R   SEG=?BANK?SWITCH
?B_SWITCH2 . . . .  C ADDR   002CH   R   SEG=?BANK?SWITCH
?B_SWITCH3 . . . .  C ADDR   003DH   R   SEG=?BANK?SWITCH
?B_VAR_BANKING . .  N NUMB   0000H   A   
ACC. . . . . . . .  D ADDR   00E0H   A   
B. . . . . . . . .  D ADDR   00F0H   A   
B_SWITCH_SIZE. . .  N NUMB   0044H   A   
B_SWITCH_START . .  C ADDR   0000H   R   SEG=?BANK?SWITCH
CNT. . . . . . . .  N NUMB   0004H   A   
DPH. . . . . . . .  D ADDR   0083H   A   
DPL. . . . . . . .  D ADDR   0082H   A   
EA . . . . . . . .  B ADDR   00A8H.7 A   
IE . . . . . . . .  D ADDR   00A8H   A   
MASK . . . . . . .  N NUMB   0003H   A   
PSBANK . . . . . .  D ADDR   00B1H   A   
SWITCH_TAB . . . .  C ADDR   0008H   R   SEG=?BANK?SELECT
_SWITCHBANK. . . .  C ADDR   0000H   R   SEG=?BANK?SELECT
_SWITCHBANK_A. . .  C ADDR   0001H   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 + -