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

📄 l51_bank.lst

📁 MSTARXX.rar
💻 LST
📖 第 1 页 / 共 2 页
字号:
                     353       ENDIF
                     354     
                               ENDIF
                     361     
                               ENDIF
                     367     
                     368     
                     369       ; Macro code to select the 'N'
                     370       SWITCH        MACRO   N
                     371                     ORG     N * 8
                     372                     PUBLIC  ?B_SWITCH&N
                     373       ?B_SWITCH&N:
                     374         IF  N <> 0
                     375                     ORL     ?B_CURRENTBANK,#?B_MASK
                     376         ENDIF
                     377         IF  N <> (?B_NBANKS-1)
                     378                     ANL     ?B_CURRENTBANK,#(BANK&N OR NOT ?B_MASK) 
                     379         ENDIF
                     380                     RET
                     381                     ENDM
                     382     
                     383     ENDIF
                     384     
                     385     
                     386     SELECT          MACRO   N
                     387     LOCAL           XLABEL, YLABEL
                     388     
                     389                     PUBLIC  ?B_BANK&N
                     390     ?B_BANK&N:      
                     391                     MOV     A,?B_CURRENTBANK
                     392                     ANL     A,#?B_MASK
                     393                     CONVBANKNO         ; Convert Bank Number to Address
                     394                     PUSH    ACC
                     395                     MOV     A,#HIGH ?BANK?SWITCH
A51 MACRO ASSEMBLER  L51_BANK                                                             09/29/2009 23:44:48 PAGE     4

                     396                     PUSH    ACC
                     397                     PUSH    DPL
                     398                     PUSH    DPH
                     399                     LJMP    ?B_SWITCH&N
                     400                     ENDM
                     401     
                     402     
                     403     ?BANK?SELECT    SEGMENT  CODE
                     404     
----                 405                     RSEG    ?BANK?SELECT
  0000               406     CNT             SET     0
                     407     
                     408                     REPT    ?B_NBANKS
                     409                     SELECT  %CNT
                     410     CNT             SET     CNT+1
                     411     
                     412                     ENDM
                     413+1                   SELECT  %CNT
                     430+1                   SELECT  %CNT
                     447     
                     448     
                     449     
                     450     
                     451     ?BANK?SWITCH    SEGMENT  CODE  PAGE
                     452     
----                 453                     RSEG    ?BANK?SWITCH
  0000               454     CNT             SET     0
                     455     
                     456                     REPT    ?B_NBANKS
                     457                     SWITCH  %CNT
                     458     
                     459     CNT             SET     CNT+1
                     460                     ENDM
                     461+1                   SWITCH  %CNT
                     474+1                   SWITCH  %CNT
                     487     
                     488     
                               ENDIF
                     518     
                     519     
                     520     ENDIF  ; close block IF ?B_MODE = 0 *******************************************
                     521     
                     522     
                             ENDIF  ; close block IF ?B_MODE = 1 *******************************************
                     764     
                     765     
                             ENDIF  ; close block IF ?B_MODE = 4 *******************************************
                     838     
----                 839                     RSEG    ?BANK?SELECT
                     840     
                     841     ;************************  SWITCHBANK FUNCTION  *******************************
                     842     ;                                                                             *
                     843     ; SWITCHBANK allows use of bank-switching for C programs                      *
                     844     ;                                                                             *
                     845     ; prototype:   extern switchbank (unsigned char bank_number);                 *
                     846     ;                                                                             *
                     847     ;******************************************************************************
                     848                     PUBLIC  _SWITCHBANK, ?B_SWITCHBANK_A
                     849     
0026 EF              850     _SWITCHBANK:    MOV     A,R7
                     851     
                     852     IF  ?B_MODE = 0 ;**************************************************************
                     853     
0027                 854     ?B_SWITCHBANK_A:
                             ENDIF
                     859     
A51 MACRO ASSEMBLER  L51_BANK                                                             09/29/2009 23:44:48 PAGE     5

                     860     IF ?B_NBANKS <= 16 AND ?B_RTX = 0
0027 C4              861                     SWAP    A
0028 03              862                     RR      A
                     863     ENDIF
0029 900000   F      864                     MOV     DPTR,#?BANK?SWITCH
002C 73              865                     JMP     @A+DPTR
                     866     
                     867     ENDIF  ; close block IF ?B_MODE = 0 *******************************************
                     868     
                             ENDIF  ; close block IF ?B_MODE = 1 *******************************************
                     884     
                             ENDIF  ; close block IF ?B_MODE = 4 *******************************************
                     914     
                     915     
                             ENDIF  ; close block IF ?B_VAR_BANKING ****************************************
                    1328     
A51 MACRO ASSEMBLER  L51_BANK                                                             09/29/2009 23:44:48 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   00B0H   A   
?B_FACTOR. . . . .  N NUMB   0020H   A   
?B_FIRSTBIT. . . .  N NUMB   0005H   A   
?B_MASK. . . . . .  N NUMB   0020H   A   
?B_MODE. . . . . .  N NUMB   0000H   A   
?B_NBANKS. . . . .  N NUMB   0002H   A   
?B_PORT. . . . . .  D ADDR   00B0H   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   0020H   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. . . . . . . . .    ----   -----       
P3 . . . . . . . .  D ADDR   00B0H   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 + -