📄 l51_bank.lst
字号:
339+1 SELECT %CNT
362+1 SELECT %CNT
385+1 SELECT %CNT
408+1 SELECT %CNT
431+1 SELECT %CNT
454+1 SELECT %CNT
477+1 SELECT %CNT
500+1 SELECT %CNT
523+1 SELECT %CNT
546+1 SELECT %CNT
569+1 SELECT %CNT
592+1 SELECT %CNT
615+1 SELECT %CNT
638+1 SELECT %CNT
661+1 SELECT %CNT
684
685
686
687 SWITCH MACRO N
688 ORG N * 8
689 PUBLIC ?B_SWITCH&N
690 ?B_SWITCH&N:
691 IF ?B_RTX = 0
692 IF N <> 0
693 ORL ?B_CURRENTBANK,#?B_MASK
694 ENDIF
695 IF N <> (?B_NBANKS-1)
696 ANL ?B_CURRENTBANK,#(BANK&N OR NOT ?B_MASK)
697 ENDIF
698 RET
699 ELSE
700 IF N = 0
701 ANL ?B_CURRENTBANK,#(BANK&N OR NOT ?B_MASK)
702 ELSEIF N <> (?B_NBANKS-1)
703 MOV R0,A
704 MOV A,#(BANK&N OR NOT ?B_MASK)
705 LJMP SWITCHBNK
706 ELSE
707 ORL ?B_CURRENTBANK,#?B_MASK
708 RET
709 ENDIF
710 ENDIF
711 ENDM
712
713
714 ?BANK?SWITCH SEGMENT CODE PAGE
715
---- 716 RSEG ?BANK?SWITCH
0000 717 CNT SET 0
718
719 REPT ?B_NBANKS
720 SWITCH %CNT
721
722 CNT SET CNT+1
723 ENDM
724+1 SWITCH %CNT
750+1 SWITCH %CNT
776+1 SWITCH %CNT
802+1 SWITCH %CNT
828+1 SWITCH %CNT
854+1 SWITCH %CNT
880+1 SWITCH %CNT
906+1 SWITCH %CNT
932+1 SWITCH %CNT
958+1 SWITCH %CNT
984+1 SWITCH %CNT
A51 MACRO ASSEMBLER L51_BANK 06/12/2006 17:23:05 PAGE 5
1010+1 SWITCH %CNT
1036+1 SWITCH %CNT
1062+1 SWITCH %CNT
1088+1 SWITCH %CNT
1114+1 SWITCH %CNT
1140
1141
ENDIF
1151
1152 ENDIF ; close block IF ?B_MODE = 0 *******************************************
1153
1154
ENDIF ; close block IF ?B_MODE = 1 *******************************************
1389
1390
ENDIF ; close block IF ?B_MODE = 4 *******************************************
1449
---- 1450 RSEG ?BANK?SELECT
1451
1452 ;************************ SWITCHBANK FUNCTION *******************************
1453 ; *
1454 ; SWITCHBANK allows use of bank-switching for C programs *
1455 ; *
1456 ; prototype: extern switchbank (unsigned char bank_number); *
1457 ; *
1458 ;******************************************************************************
1459 PUBLIC _SWITCHBANK
1460
0130 EF 1461 _SWITCHBANK: MOV A,R7
1462
ENDIF ; close block IF ?B_VAR_BANKING <> 0 ***********************************
1506
1507 IF ?B_MODE = 0 ;**************************************************************
1508
0131 C4 1509 _SWITCHBANK_A: SWAP A
0132 03 1510 RR A
0133 900000 F 1511 MOV DPTR,#?BANK?SWITCH
0136 73 1512 JMP @A+DPTR
1513
1514 ENDIF ; close block IF ?B_MODE = 0 *******************************************
1515
ENDIF ; close block IF ?B_MODE = 1 *******************************************
1531
1532
ENDIF ; close block IF ?B_MODE = 4 *******************************************
1553
1554
A51 MACRO ASSEMBLER L51_BANK 06/12/2006 17:23:05 PAGE 6
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
?BANK?SELECT . . . C SEG 0137H REL=UNIT
?BANK?SWITCH . . . C SEG 007CH 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_BANK10. . . . . C ADDR 00BEH R SEG=?BANK?SELECT
?B_BANK11. . . . . C ADDR 00D1H R SEG=?BANK?SELECT
?B_BANK12. . . . . C ADDR 00E4H R SEG=?BANK?SELECT
?B_BANK13. . . . . C ADDR 00F7H R SEG=?BANK?SELECT
?B_BANK14. . . . . C ADDR 010AH R SEG=?BANK?SELECT
?B_BANK15. . . . . C ADDR 011DH R SEG=?BANK?SELECT
?B_BANK2 . . . . . C ADDR 0026H R SEG=?BANK?SELECT
?B_BANK3 . . . . . C ADDR 0039H R SEG=?BANK?SELECT
?B_BANK4 . . . . . C ADDR 004CH R SEG=?BANK?SELECT
?B_BANK5 . . . . . C ADDR 005FH R SEG=?BANK?SELECT
?B_BANK6 . . . . . C ADDR 0072H R SEG=?BANK?SELECT
?B_BANK7 . . . . . C ADDR 0085H R SEG=?BANK?SELECT
?B_BANK8 . . . . . C ADDR 0098H R SEG=?BANK?SELECT
?B_BANK9 . . . . . C ADDR 00ABH R SEG=?BANK?SELECT
?B_COMMON_XRAM . . ---- -----
?B_CURRENTBANK . . D ADDR 009AH A
?B_FACTOR. . . . . N NUMB 0001H A
?B_FIRSTBIT. . . . N NUMB 0000H A
?B_INTR_ACCESS . . ---- -----
?B_MASK. . . . . . N NUMB 000FH A
?B_MODE. . . . . . N NUMB 0000H A
?B_NBANKS. . . . . N NUMB 0010H A
?B_PORT. . . . . . D ADDR 009AH 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_SWITCH10. . . . C ADDR 0050H R SEG=?BANK?SWITCH
?B_SWITCH11. . . . C ADDR 0058H R SEG=?BANK?SWITCH
?B_SWITCH12. . . . C ADDR 0060H R SEG=?BANK?SWITCH
?B_SWITCH13. . . . C ADDR 0068H R SEG=?BANK?SWITCH
?B_SWITCH14. . . . C ADDR 0070H R SEG=?BANK?SWITCH
?B_SWITCH15. . . . C ADDR 0078H R SEG=?BANK?SWITCH
?B_SWITCH2 . . . . C ADDR 0010H R SEG=?BANK?SWITCH
?B_SWITCH3 . . . . C ADDR 0018H R SEG=?BANK?SWITCH
?B_SWITCH4 . . . . C ADDR 0020H R SEG=?BANK?SWITCH
?B_SWITCH5 . . . . C ADDR 0028H R SEG=?BANK?SWITCH
?B_SWITCH6 . . . . C ADDR 0030H R SEG=?BANK?SWITCH
?B_SWITCH7 . . . . C ADDR 0038H R SEG=?BANK?SWITCH
?B_SWITCH8 . . . . C ADDR 0040H R SEG=?BANK?SWITCH
?B_SWITCH9 . . . . C ADDR 0048H 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
BANK10 . . . . . . N NUMB 000AH A
BANK11 . . . . . . N NUMB 000BH A
BANK12 . . . . . . N NUMB 000CH A
BANK13 . . . . . . N NUMB 000DH A
BANK14 . . . . . . N NUMB 000EH A
BANK15 . . . . . . N NUMB 000FH A
BANK2. . . . . . . N NUMB 0002H A
BANK3. . . . . . . N NUMB 0003H A
BANK4. . . . . . . N NUMB 0004H A
A51 MACRO ASSEMBLER L51_BANK 06/12/2006 17:23:05 PAGE 7
BANK5. . . . . . . N NUMB 0005H A
BANK6. . . . . . . N NUMB 0006H A
BANK7. . . . . . . N NUMB 0007H A
BANK8. . . . . . . N NUMB 0008H A
BANK9. . . . . . . N NUMB 0009H A
CNT. . . . . . . . N NUMB 0010H A
DPH. . . . . . . . D ADDR 0083H A
DPL. . . . . . . . D ADDR 0082H A
MASK . . . . . . . N NUMB 000FH A
ROMPAGE. . . . . . D ADDR 009AH A
_SWITCHBANK. . . . C ADDR 0130H R SEG=?BANK?SELECT
_SWITCHBANK_A. . . C ADDR 0131H 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 + -