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

📄 l51_bank.lst

📁 用keil便宜代码超过64k的程序例子
💻 LST
📖 第 1 页 / 共 2 页
字号:
                        367     
                                  ENDIF
                        373     
                        374     
                        375       ; Macro code to select the 'N'
                        376       SWITCH        MACRO   N
                        377                     ORG     N * 8
                        378                     PUBLIC  ?B_SWITCH&N
                        379       ?B_SWITCH&N:
                        380         IF  N <> 0
                        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                     ENDM
                        388     
                        389     ENDIF
                        390     
                        391     
                        392     SELECT          MACRO   N
                        393     LOCAL           XLABEL, YLABEL
                        394     
                        395                     PUBLIC  ?B_BANK&N
                        396     ?B_BANK&N:      
                        397                     MOV     A,?B_CURRENTBANK
                        398                     ANL     A,#?B_MASK
                        399                     CONVBANKNO         ; Convert Bank Number to Address
                        400                     PUSH    ACC
                        401                     MOV     A,#HIGH ?BANK?SWITCH
                        402                     PUSH    ACC
                        403                     PUSH    DPL
                        404                     PUSH    DPH
                        405                     LJMP    ?B_SWITCH&N
                        406                     ENDM
AX51 MACRO ASSEMBLER  L51_BANK                                                              07/11/05 23:04:55 PAGE     4

                        407     
                        408     
------                  409     ?BANK?SELECT    SEGMENT  CODE
                        410     
------                  411                     RSEG    ?BANK?SELECT
 0000                   412     CNT             SET     0
                        413     
                        414                     REPT    ?B_NBANKS
                        415                     SELECT  %CNT
                        416     CNT             SET     CNT+1
                        417     
                        483     
                        484     
                        485     
                        486     
------                  487     ?BANK?SWITCH    SEGMENT  CODE  PAGE
                        488     
------                  489                     RSEG    ?BANK?SWITCH
 0000                   490     CNT             SET     0
                        491     
                        492                     REPT    ?B_NBANKS
                        493                     SWITCH  %CNT
                        494     
                        495     CNT             SET     CNT+1
                        549     
                        550     
                                  ENDIF
                        580     
                        581     
                        582     ENDIF  ; close block IF ?B_MODE = 0 *******************************************
                        583     
                        584     
                                ENDIF  ; close block IF ?B_MODE = 1 *******************************************
                        826     
                        827     
                                ENDIF  ; close block IF ?B_MODE = 4 *******************************************
                        900     
------                  901                     RSEG    ?BANK?SELECT
                        902     
                        903     ;************************  SWITCHBANK FUNCTION  *******************************
                        904     ;                                                                             *
                        905     ; SWITCHBANK allows use of bank-switching for C programs                      *
                        906     ;                                                                             *
                        907     ; prototype:   extern switchbank (unsigned char bank_number);                 *
                        908     ;                                                                             *
                        909     ;******************************************************************************
                        910                     PUBLIC  _SWITCHBANK, ?B_SWITCHBANK_A
                        911     
000048 EF               912     _SWITCHBANK:    MOV     A,R7
                        913     
                        914     IF  ?B_MODE = 0 ;**************************************************************
                        915     
000049                  916     ?B_SWITCHBANK_A:
                                ENDIF
                        921     
                        922     IF ?B_NBANKS <= 16 AND ?B_RTX = 0
000049 C4               923                     SWAP    A
00004A 03               924                     RR      A
                        925     ENDIF
00004B 900000     F     926                     MOV     DPTR,#?BANK?SWITCH
00004E 73               927                     JMP     @A+DPTR
                        928     
                        929     ENDIF  ; close block IF ?B_MODE = 0 *******************************************
                        930     
                                ENDIF  ; close block IF ?B_MODE = 1 *******************************************
                        946     
AX51 MACRO ASSEMBLER  L51_BANK                                                              07/11/05 23:04:55 PAGE     5

                                ENDIF  ; close block IF ?B_MODE = 4 *******************************************
                        976     
                        977     
                                ENDIF  ; close block IF ?B_VAR_BANKING ****************************************
                       1390     
                       1391                     END
AX51 MACRO ASSEMBLER  L51_BANK                                                              07/11/05 23:04:55 PAGE     6

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


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

?B_BANK0 . . . . . . . . . .  C  ADDR  0000H     R   SEG=?BANK?SELECT
?B_BANK1 . . . . . . . . . .  C  ADDR  0012H     R   SEG=?BANK?SELECT
?B_BANK2 . . . . . . . . . .  C  ADDR  0024H     R   SEG=?BANK?SELECT
?B_BANK3 . . . . . . . . . .  C  ADDR  0036H     R   SEG=?BANK?SELECT
?B_CURRENTBANK . . . . . . .  D  ADDR  0090H     A   
?B_FACTOR. . . . . . . . . .  N  NUMB  0004H     A   
?B_FIRSTBIT. . . . . . . . .  N  NUMB  0002H     A   
?B_MASK. . . . . . . . . . .  N  NUMB  000CH     A   
?B_MODE. . . . . . . . . . .  N  NUMB  0000H     A   
?B_NBANKS. . . . . . . . . .  N  NUMB  0004H     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_SWITCH2 . . . . . . . . .  C  ADDR  0010H     R   SEG=?BANK?SWITCH
?B_SWITCH3 . . . . . . . . .  C  ADDR  0018H     R   SEG=?BANK?SWITCH
?B_SWITCHBANK_A. . . . . . .  C  ADDR  0049H     R   SEG=?BANK?SELECT
?B_VAR_BANKING . . . . . . .  N  NUMB  0000H     A   
?BANK?SELECT . . . . . . . .  C  SEG   00004FH       REL=UNIT, ALN=BYTE
?BANK?SWITCH . . . . . . . .  C  SEG   00001CH       REL=UNIT, ALN=PAGE
?BANK?SWITCHING. . . . . . .  -- ----  -------       
_SWITCHBANK. . . . . . . . .  C  ADDR  0048H     R   SEG=?BANK?SELECT
ACC. . . . . . . . . . . . .  D  ADDR  00E0H     A   
B. . . . . . . . . . . . . .  D  ADDR  00F0H     A   
B_SWITCH_SIZE. . . . . . . .  -- ----  -------       
BANK0. . . . . . . . . . . .  N  NUMB  0000H     A   
BANK1. . . . . . . . . . . .  N  NUMB  0004H     A   
BANK2. . . . . . . . . . . .  N  NUMB  0008H     A   
BANK3. . . . . . . . . . . .  N  NUMB  000CH     A   
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   
LONG_MACRO . . . . . . . . .  -- ----  -------       
MASK . . . . . . . . . . . .  N  NUMB  0003H     A   
N. . . . . . . . . . . . . .  -- ----  -------       
P1 . . . . . . . . . . . . .  D  ADDR  0090H     A   
SAVEA. . . . . . . . . . . .  -- ----  -------       


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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