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

📄 l51_bank.lst

📁 用keil开发的.单片机税控器程序.单片机用的是AT公司的.upsd3245
💻 LST
📖 第 1 页 / 共 2 页
字号:
                               ENDIF
                     645     
                     646       SWITCH        MACRO   N
                     647                     ORG     N * 16
                     648                     PUBLIC  ?B_SWITCH&N
                     649       ?B_SWITCH&N:
                     650                     MOV     R0,A
                     651                     MOV     A,#BANK&N
                     652                     MOV     DPTR,#?B_XDATAPORT
                     653                     MOV     ?B_CURRENTBANK,A
                     654                     MOVX    @DPTR,A
                     655                     MOV     A,R0
                     656                     RET
A51 MACRO ASSEMBLER  L51_BANK                                                             03/28/2006 09:48:44 PAGE     4

                     657                     ENDM
                     658       
                     659     ENDIF
                     660     
                     661     
                     662     SELECT          MACRO   N
                     663     LOCAL           XLABEL, YLABEL
                     664     
                     665                     PUBLIC  ?B_BANK&N
                     666     ?B_BANK&N:      
                     667                     MOV     A,?B_CURRENTBANK
                     668                     ANL     A,#?B_MASK
                     669                     CONVBANKNO         ; Convert Bank Number to Address
                     670                     PUSH    ACC
                     671                     MOV     A,#HIGH ?BANK?SWITCH
                     672                     PUSH    ACC
                     673                     PUSH    DPL
                     674                     PUSH    DPH
                     675                     LJMP    ?B_SWITCH&N
                     676     
                     677                     ENDM
                     678     
                     679     
                     680     ?BANK?SELECT    SEGMENT  CODE
                     681     
----                 682                     RSEG    ?BANK?SELECT
  0000               683     CNT             SET     0
                     684     
                     685                     REPT    ?B_NBANKS
                     686                     SELECT  %CNT
                     687     CNT             SET     CNT+1
                     688     
                     689                     ENDM
                     690+1                   SELECT  %CNT
                     707+1                   SELECT  %CNT
                     724+1                   SELECT  %CNT
                     741+1                   SELECT  %CNT
                     758+1                   SELECT  %CNT
                     775+1                   SELECT  %CNT
                     792+1                   SELECT  %CNT
                     809+1                   SELECT  %CNT
                     826     
                     827     
                     828     
                     829     ?BANK?SWITCH    SEGMENT  CODE  PAGE
                     830     
----                 831                     RSEG    ?BANK?SWITCH
  0000               832     CNT             SET     0
                     833     
                     834                     REPT    ?B_NBANKS
                     835                     SWITCH  %CNT
                     836     
                     837     CNT             SET     CNT+1
                     838                     ENDM
                     839+1                   SWITCH  %CNT
                     852+1                   SWITCH  %CNT
                     865+1                   SWITCH  %CNT
                     878+1                   SWITCH  %CNT
                     891+1                   SWITCH  %CNT
                     904+1                   SWITCH  %CNT
                     917+1                   SWITCH  %CNT
                     930+1                   SWITCH  %CNT
                     943     
                               ENDIF
                     952     
                               ENDIF
A51 MACRO ASSEMBLER  L51_BANK                                                             03/28/2006 09:48:44 PAGE     5

                     960     
                     961     ENDIF  ; close block IF ?B_MODE = 1 *******************************************
                     962     
                     963     
                             ENDIF  ; close block IF ?B_MODE = 4 *******************************************
                    1036     
----                1037                     RSEG    ?BANK?SELECT
                    1038     
                    1039     ;************************  SWITCHBANK FUNCTION  *******************************
                    1040     ;                                                                             *
                    1041     ; SWITCHBANK allows use of bank-switching for C programs                      *
                    1042     ;                                                                             *
                    1043     ; prototype:   extern switchbank (unsigned char bank_number);                 *
                    1044     ;                                                                             *
                    1045     ;******************************************************************************
                    1046                     PUBLIC  _SWITCHBANK, ?B_SWITCHBANK_A
                    1047     
0090 EF             1048     _SWITCHBANK:    MOV     A,R7
                    1049     
                             ENDIF  ; close block IF ?B_MODE = 0 *******************************************
                    1066     
                    1067     IF ?B_MODE = 1 ;***************************************************************
                    1068     
0091                1069     ?B_SWITCHBANK_A:
                             ENDIF
                    1074     
                    1075     IF ?B_NBANKS <= 16
0091 C4             1076                     SWAP    A
                    1077     ENDIF
0092 900000   F     1078                     MOV     DPTR,#?BANK?SWITCH
0095 73             1079                     JMP     @A+DPTR
                    1080     
                    1081     ENDIF  ; close block IF ?B_MODE = 1 *******************************************
                    1082     
                             ENDIF  ; close block IF ?B_MODE = 4 *******************************************
                    1112     
                    1113     
                             ENDIF  ; close block IF ?B_VAR_BANKING ****************************************
                    1526     
A51 MACRO ASSEMBLER  L51_BANK                                                             03/28/2006 09:48:44 PAGE     6

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    0096H       REL=UNIT
?BANK?SWITCH . . .  C SEG    007BH       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_BANK2 . . . . .  C ADDR   0024H   R   SEG=?BANK?SELECT
?B_BANK3 . . . . .  C ADDR   0036H   R   SEG=?BANK?SELECT
?B_BANK4 . . . . .  C ADDR   0048H   R   SEG=?BANK?SELECT
?B_BANK5 . . . . .  C ADDR   005AH   R   SEG=?BANK?SELECT
?B_BANK6 . . . . .  C ADDR   006CH   R   SEG=?BANK?SELECT
?B_BANK7 . . . . .  C ADDR   007EH   R   SEG=?BANK?SELECT
?B_CURRENTBANK . .  D ADDR   0000H   R   SEG=?BANK?DATA
?B_FACTOR. . . . .  N NUMB   0001H   A   
?B_FIRSTBIT. . . .  N NUMB   0000H   A   
?B_MASK. . . . . .  N NUMB   0007H   A   
?B_MODE. . . . . .  N NUMB   0001H   A   
?B_NBANKS. . . . .  N NUMB   0008H   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   0010H   R   SEG=?BANK?SWITCH
?B_SWITCH2 . . . .  C ADDR   0020H   R   SEG=?BANK?SWITCH
?B_SWITCH3 . . . .  C ADDR   0030H   R   SEG=?BANK?SWITCH
?B_SWITCH4 . . . .  C ADDR   0040H   R   SEG=?BANK?SWITCH
?B_SWITCH5 . . . .  C ADDR   0050H   R   SEG=?BANK?SWITCH
?B_SWITCH6 . . . .  C ADDR   0060H   R   SEG=?BANK?SWITCH
?B_SWITCH7 . . . .  C ADDR   0070H   R   SEG=?BANK?SWITCH
?B_SWITCHBANK_A. .  C ADDR   0091H   R   SEG=?BANK?SELECT
?B_VAR_BANKING . .  N NUMB   0000H   A   
?B_XDATAPORT . . .  N NUMB   02E0H   A   
?C_INITSEG . . . .  C SEG    0007H       REL=UNIT
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   
BANK4. . . . . . .  N NUMB   0004H   A   
BANK5. . . . . . .  N NUMB   0005H   A   
BANK6. . . . . . .  N NUMB   0006H   A   
BANK7. . . . . . .  N NUMB   0007H   A   
B_SWITCH_SIZE. . .    ----   -----       
CNT. . . . . . . .  N NUMB   0008H   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   0007H   A   
N. . . . . . . . .    ----   -----       
SAVEA. . . . . . .    ----   -----       
_SWITCHBANK. . . .  C ADDR   0090H   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 + -