📄 10.lst
字号:
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 1
MCS-51 Family Cross Assembler A S E M - 5 1 V 1.2
=====================================================
Source File: 10.ASM
Object File: 10.HEX
List File: 10.LST
Line I Addr Code Source
1: N 0000 ORG 0000H
2: 0000 01 30 AJMP START
3: N 0003 ORG 0003H ;INT0中断处理程序入口地址
4: 0003 01 5C AJMP EXTINT0 ;跳转到外部中断0程序EXINT0
5: N 0013 ORG 0013H ;INT1中断处理程序入口地址
6: 0013 01 69 AJMP EXTINT1 ;跳转到外部中断1程序EXINT1
7: N 0030 ORG 0030H
8: 0030 75 81 60 START: MOV SP,#60H ;设置堆栈
9: 0033 D2 AA SETB EX1 ;开外部中断1
10: 0035 D2 A8 SETB EX0 ;开外部中断0
11: 0037 D2 AF SETB EA ;开总中断
12: 0039 D2 8A SETB IT1 ;外部中断1由下降沿触发
13: 003B D2 88 SETB IT0 ;外部中断0由下降沿触发
14: 003D 74 FF MOV A,#0FFH ;A初始化
15: 003F C3 CLR C
16: 0040 C2 00 CLR 20H.0 ;按键key0标志位
17: 0042 C2 01 CLR 20H.1 ;按键key1标志位
18: 0044 NEXT:
19: 0044 20 00 05 JB 20H.0,KEY0 ;判断key0被按下
20: 0047 20 01 0A JB 20H.1,KEY1 ;判断key1被按下
21: 004A 01 44 AJMP NEXT ;循环输出
22: 004C 13 key0: RRC A ;带c位循环右移
23: 004D F5 A0 MOV P2,A ;将A中的数值输出到P2口
24: 004F 12 00 76 CALL DELAY ;调用延时子程序
25: 0052 01 44 AJMP NEXT ;循环输出
26: 0054 33 key1: RLC A ;带c位循环左移
27: 0055 F5 A0 MOV P2,A ;将A中的数值输出到P2口
28: 0057 12 00 76 CALL DELAY ;调用延时子程序
29: 005A 01 44 AJMP NEXT ;循环输出
30: ; 以下是外部中断0服务程序
31: 005C C0 E0 EXTINT0: PUSH ACC ;将ACC的值存入堆栈保存
32: 005E C0 D0 PUSH PSW ;将PSW的值存入堆栈保存
33: 0060 D2 00 SETB 20H.0 ;key0按下置标志位
34: 0062 C2 01 CLR 20H.1
35: 0064 D0 D0 POP PSW ;从堆栈取回PSW的值
36: 0066 D0 E0 POP ACC ;从堆栈取回A的值
37: 0068 32 RETI ;返回主程序
38: ; 以下是外部中断1服务程序
39: 0069 C0 E0 EXTINT1: PUSH ACC ;将ACC的值存入堆栈保存
40: 006B C0 D0 PUSH PSW ;将PSW的值存入堆栈保存
41: 006D D2 01 SETB 20H.1 ;key1按下置标志位
42: 006F C2 00 CLR 20H.0
43: 0071 D0 D0 POP PSW ;从堆栈取回PSW的值
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 2
Line I Addr Code Source
44: 0073 D0 E0 POP ACC ;从堆栈取回A的值
45: 0075 32 RETI ;返回主程序
46: ;以下延时子程序
47: 0076 C0 E0 DELAY: PUSH ACC
48: 0078 C0 D0 PUSH PSW
49: 007A 7F FA MOV R7,#250
50: 007C 7E FA DE1: MOV R6,#250
51: 007E DE FE DE2: DJNZ R6,DE2
52: 0080 DF FA DJNZ R7,DE1
53: 0082 D0 D0 POP PSW
54: 0084 D0 E0 POP ACC
55: 0086 22 RET
56: END
register banks used: ---
no errors
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 3
L I S T O F S Y M B O L S
=============================
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
AC BIT D6
ACC DATA E0
B DATA F0
CY BIT D7
DE1 CODE 007C 50
DE2 CODE 007E 51
DELAY CODE 0076 47
DPH DATA 83
DPL DATA 82
EA BIT AF
ES BIT AC
ET0 BIT A9
ET1 BIT AB
EX0 BIT A8
EX1 BIT AA
EXTI0 CODE 0003
EXTI1 CODE 0013
EXTINT0 CODE 005C 31
EXTINT1 CODE 0069 39
F0 BIT D5
IE DATA A8
IE0 BIT 89
IE1 BIT 8B
INT0 BIT B2
INT1 BIT B3
IP DATA B8
IT0 BIT 88
IT1 BIT 8A
KEY0 CODE 004C 22
KEY1 CODE 0054 26
NEXT CODE 0044 18
OV BIT D2
P BIT D0
P0 DATA 80
P1 DATA 90
P2 DATA A0
P3 DATA B0
PCON DATA 87
PS BIT BC
PSW DATA D0
PT0 BIT B9
PT1 BIT BB
PX0 BIT B8
PX1 BIT BA
RB8 BIT 9A
RD BIT B7
REN BIT 9C
RESET CODE 0000
RI BIT 98
RS0 BIT D3
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 4
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
RS1 BIT D4
RXD BIT B0
SBUF DATA 99
SCON DATA 98
SINT CODE 0023
SM0 BIT 9F
SM1 BIT 9E
SM2 BIT 9D
SP DATA 81
START CODE 0030 8
T0 BIT B4
T1 BIT B5
TB8 BIT 9B
TCON DATA 88
TF0 BIT 8D
TF1 BIT 8F
TH0 DATA 8C
TH1 DATA 8D
TI BIT 99
TIMER0 CODE 000B
TIMER1 CODE 001B
TL0 DATA 8A
TL1 DATA 8B
TMOD DATA 89
TR0 BIT 8C
TR1 BIT 8E
TXD BIT B1
WR BIT B6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -