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

📄 l51_bank.lst

📁 通过车载终端采集GPS数据
💻 LST
📖 第 1 页 / 共 2 页
字号:
                     363       CONVBANKNO    MACRO
                     364                     SWAP    A
                     365                     ENDM
                     366       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
                     396                     PUSH    ACC
A51 MACRO ASSEMBLER  L51_BANK                                                             09/25/2008 19:29:40 PAGE     4

                     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
                     429+1                   SELECT  %CNT
                     445     
                     446     
                     447     
                     448     
                     449     ?BANK?SWITCH    SEGMENT  CODE  PAGE
                     450     
----                 451                     RSEG    ?BANK?SWITCH
  0000               452     CNT             SET     0
                     453     
                     454                     REPT    ?B_NBANKS
                     455                     SWITCH  %CNT
                     456     
                     457     CNT             SET     CNT+1
                     458                     ENDM
                     459+1                   SWITCH  %CNT
                     472+1                   SWITCH  %CNT
                     485     
                     486     
                               ENDIF
                     516     
                     517     
                     518     ENDIF  ; close block IF ?B_MODE = 0 *******************************************
                     519     
                     520     
                             ENDIF  ; close block IF ?B_MODE = 1 *******************************************
                     762     
                     763     
                             ENDIF  ; close block IF ?B_MODE = 4 *******************************************
                     836     
----                 837                     RSEG    ?BANK?SELECT
                     838     
                     839     ;************************  SWITCHBANK FUNCTION  *******************************
                     840     ;                                                                             *
                     841     ; SWITCHBANK allows use of bank-switching for C programs                      *
                     842     ;                                                                             *
                     843     ; prototype:   extern switchbank (unsigned char bank_number);                 *
                     844     ;                                                                             *
                     845     ;******************************************************************************
                     846                     PUBLIC  _SWITCHBANK, ?B_SWITCHBANK_A
                     847     
0024 EF              848     _SWITCHBANK:    MOV     A,R7
                     849     
                     850     IF  ?B_MODE = 0 ;**************************************************************
                     851     
0025                 852     ?B_SWITCHBANK_A:
                             ENDIF
                     857     
                     858     IF ?B_NBANKS <= 16 AND ?B_RTX = 0
A51 MACRO ASSEMBLER  L51_BANK                                                             09/25/2008 19:29:40 PAGE     5

0025 C4              859                     SWAP    A
0026 03              860                     RR      A
                     861     ENDIF
0027 900000   F      862                     MOV     DPTR,#?BANK?SWITCH
002A 73              863                     JMP     @A+DPTR
                     864     
                     865     ENDIF  ; close block IF ?B_MODE = 0 *******************************************
                     866     
                             ENDIF  ; close block IF ?B_MODE = 1 *******************************************
                     882     
                             ENDIF  ; close block IF ?B_MODE = 4 *******************************************
                     912     
                     913     
                             ENDIF  ; close block IF ?B_VAR_BANKING ****************************************
                    1326     
A51 MACRO ASSEMBLER  L51_BANK                                                             09/25/2008 19:29:40 PAGE     6

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


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

?BANK?SELECT . . .  C SEG    002BH       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   0012H   R   SEG=?BANK?SELECT
?B_CURRENTBANK . .  D ADDR   0090H   A   
?B_FACTOR. . . . .  N NUMB   0080H   A   
?B_FIRSTBIT. . . .  N NUMB   0007H   A   
?B_MASK. . . . . .  N NUMB   0080H   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   0025H   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   0080H   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   0024H   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 + -