?? switch.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 + -