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

📄 nt68f631_bank.lst

📁 车载DVD的主控MCU的源程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
                     258     ;;XLABEL:
                     259                     CONVBANKNO         ; Convert Bank Number to Address
                     260                     PUSH    ACC
                     261                     MOV     A,#HIGH ?BANK?SWITCH
                     262                     PUSH    ACC
                     263     ;;YLABEL:
                     264                     PUSH    DPL
                     265                     PUSH    DPH
                     266                     LJMP    ?B_SWITCH&N
                     267                     ENDM
                     268     
                     269     
                     270     ?BANK?SELECT    SEGMENT  CODE
                     271     
----                 272                     RSEG    ?BANK?SELECT
  0000               273     CNT             SET     0
                     274     
                     275                     REPT    ?B_NBANKS
                     276                     SELECT  %CNT
                     277     CNT             SET     CNT+1
                     278     
                     279                     ENDM
                     280+1                   SELECT  %CNT
                     303+1                   SELECT  %CNT
                     326+1                   SELECT  %CNT
                     349+1                   SELECT  %CNT
                     372     
                     373     
                     374     
                     375     SWITCH          MACRO   N
                     376                     ORG     N * 8
                     377                     PUBLIC  ?B_SWITCH&N
                     378       ?B_SWITCH&N:
                     379       IF ?B_RTX = 0
                     380         IF  N <> 0
A51 MACRO ASSEMBLER  NT68F631_BANK                                                        12/11/2007 11:28:43 PAGE     4

                     381                     ORL     ?B_CURRENTBANK,#?B_MASK
                     382         ENDIF
                     383         IF  N <> (?B_NBANKS-1)
                     384                     ANL     ?B_CURRENTBANK,#(BANK&N OR NOT ?B_MASK) 
                     385         ENDIF
                     386                     RET
                     387       ELSE
                     388         IF  N = 0
                     389                     ANL     ?B_CURRENTBANK,#(BANK&N OR NOT ?B_MASK) 
                     390         ELSEIF  N <> (?B_NBANKS-1)
                     391                     MOV     R0,A
                     392                     MOV     A,#(BANK&N OR NOT ?B_MASK) 
                     393                     LJMP    SWITCHBNK
                     394         ELSE
                     395                     ORL     ?B_CURRENTBANK,#?B_MASK
                     396                     RET
                     397         ENDIF
                     398       ENDIF                
                     399                     ENDM
                     400     
                     401     
                     402     ?BANK?SWITCH    SEGMENT  CODE  PAGE
                     403     
----                 404                     RSEG    ?BANK?SWITCH
  0000               405     CNT             SET     0
                     406     
                     407                     REPT    ?B_NBANKS
                     408                     SWITCH  %CNT
                     409     
                     410     CNT             SET     CNT+1
                     411                     ENDM
                     412+1                   SWITCH  %CNT
                     438+1                   SWITCH  %CNT
                     464+1                   SWITCH  %CNT
                     490+1                   SWITCH  %CNT
                     516     
                     517     
                               ENDIF
                     527     
                     528     ENDIF  ; close block IF ?B_MODE = 0 *******************************************
                     529     
                     530     
                             ENDIF  ; close block IF ?B_MODE = 1 *******************************************
                     765     
                     766     
                             ENDIF  ; close block IF ?B_MODE = 4 *******************************************
                     825     
----                 826                     RSEG    ?BANK?SELECT
                     827     
                     828     ;************************  SWITCHBANK FUNCTION  *******************************
                     829     ;                                                                             *
                     830     ; SWITCHBANK allows use of bank-switching for C programs                      *
                     831     ;                                                                             *
                     832     ; prototype:   extern switchbank (unsigned char bank_number);                 *
                     833     ;                                                                             *
                     834     ;******************************************************************************
                     835                     PUBLIC  _SWITCHBANK
                     836     
004C EF              837     _SWITCHBANK:    MOV     A,R7
                     838     
                             ENDIF  ; close block IF ?B_VAR_BANKING <> 0 ***********************************
                     882     
                     883     IF  ?B_MODE = 0 ;**************************************************************
                     884     
004D C4              885     _SWITCHBANK_A:  SWAP    A
004E 03              886                     RR      A
A51 MACRO ASSEMBLER  NT68F631_BANK                                                        12/11/2007 11:28:43 PAGE     5

004F 900000   F      887                     MOV     DPTR,#?BANK?SWITCH
0052 73              888                     JMP     @A+DPTR
                     889     
                     890     ENDIF  ; close block IF ?B_MODE = 0 *******************************************
                     891     
                             ENDIF  ; close block IF ?B_MODE = 1 *******************************************
                     907     
                     908     
                             ENDIF  ; close block IF ?B_MODE = 4 *******************************************
                     929     
                     930     
A51 MACRO ASSEMBLER  NT68F631_BANK                                                        12/11/2007 11:28:43 PAGE     6

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


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

?BANK?SELECT . . .  C SEG    0053H       REL=UNIT
?BANK?SWITCH . . .  C SEG    001CH       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_BANK2 . . . . .  C ADDR   0026H   R   SEG=?BANK?SELECT
?B_BANK3 . . . . .  C ADDR   0039H   R   SEG=?BANK?SELECT
?B_COMMON_XRAM . .    ----   -----       
?B_CURRENTBANK . .  D ADDR   0090H   A   
?B_FACTOR. . . . .  N NUMB   0001H   A   
?B_FIRSTBIT. . . .  N NUMB   0000H   A   
?B_INTR_ACCESS . .    ----   -----       
?B_MASK. . . . . .  N NUMB   0003H   A   
?B_MODE. . . . . .  N NUMB   0000H   A   
?B_NBANKS. . . . .  N NUMB   0004H   A   
?B_PORT. . . . . .  D ADDR   0090H   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_SWITCH2 . . . .  C ADDR   0010H   R   SEG=?BANK?SWITCH
?B_SWITCH3 . . . .  C ADDR   0018H   R   SEG=?BANK?SWITCH
?B_VARBANKING. . .    ----   -----       
?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   
BANK2. . . . . . .  N NUMB   0002H   A   
BANK3. . . . . . .  N NUMB   0003H   A   
CNT. . . . . . . .  N NUMB   0004H   A   
DPH. . . . . . . .  D ADDR   0083H   A   
DPL. . . . . . . .  D ADDR   0082H   A   
MASK . . . . . . .  N NUMB   0003H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
_SWITCHBANK. . . .  C ADDR   004CH   R   SEG=?BANK?SELECT
_SWITCHBANK_A. . .  C ADDR   004DH   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 + -