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

📄 switch.lst

📁 Small RTOS51是为51系列单片机而编写的。它是完全免费的、源代码公开的多任务实时操作系统。它可在无任何外部数据存储器的单片80C51系统上运行
💻 LST
字号:
A51 MACRO ASSEMBLER  SWITCH                                                               01/20/2003 09:07:18 PAGE     1


MACRO ASSEMBLER A51 V7.01
OBJECT MODULE PLACED IN switch.OBJ
ASSEMBLER INVOKED BY: F:\KEIL\C51\BIN\A51.EXE switch.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;设有一个键盘共有5个键,其功能分别如下所示
                       2     
                       3     ;键名   键值    处理该键的子程序标号
                       4     ;切换   00H     SWITCH
                       5     ;移位   01H     SHIFT
                       6     ;加1    02H     INCREASE
                       7     ;减1    03H     DECREASE
                       8     ;清0    04H     CLEAR
                       9     
                      10     ;这其中键值是由键盘处理程序获得的,关于键盘的处理在后面专门有分析,这里可以理解为当按下某一
                             个键后,就能在累加器A中获得相应的键值。
                      11     
0000 7402             12             MOV     A,#2            ;模拟获得键值,读者可将此值改为0,1,2,3,4后重新汇编再试
0002                  13     LOOP:           
0002 900008           14             MOV     DPTR,#TAB       ;TAB是散转表的起始地址
0005 C3               15             CLR     C                               
0006 33               16             RLC     A               ;这两条指令的用途是将A中值乘2
0007 73               17             JMP     @A+DPTR         ;散转
                      18     
                      19     
0008 0112             20     TAB:    AJMP    SWITCH          ;散转表
000A 0116             21             AJMP    SHIFT           ;TAB+2
000C 011A             22             AJMP    INCREASE        ;TAB+4
000E 011E             23             AJMP    DECREASE        ;TAB+6
0010 0122             24             AJMP    CLEAR           ;TAB+8
                      25     
                      26     
                      27     
                      28     
0012 00               29     SWITCH: NOP             ;实现切换功能的程序段
0013 020002           30             LJMP    LOOP
0016 00               31     SHIFT:  NOP             ;实现移位功能的程序段
0017 020002           32             LJMP    LOOP
001A 00               33     INCREASE:NOP            ;实现加1功能的程序段
001B 020002           34             LJMP    LOOP
001E 00               35     DECREASE:  NOP          ;实现减1功能的程序段
001F 020002           36             LJMP    LOOP
0022 00               37     CLEAR:  NOP             ;实现清零功能的程序段
0023 020002           38             LJMP    LOOP
                      39             END
A51 MACRO ASSEMBLER  SWITCH                                                               01/20/2003 09:07:18 PAGE     2

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


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

CLEAR. . . . . . .  C ADDR   0022H   A   
DECREASE . . . . .  C ADDR   001EH   A   
INCREASE . . . . .  C ADDR   001AH   A   
LOOP . . . . . . .  C ADDR   0002H   A   
SHIFT. . . . . . .  C ADDR   0016H   A   
SWITCH . . . . . .  C ADDR   0012H   A   
TAB. . . . . . . .  C ADDR   0008H   A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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