📄 系统时间.lst
字号:
Turbo Assembler Version 4.1 08/05/21 13:11:51 Page 1
C:\DOCUME~1\ADMINI~1\MYDOCU~1\汇编程序\系统时间.ASM
1 0000 STACK1 SEGMENT STACK
2 0000 C8*(????) DW 200 DUP (?)
3 0190 STACK1 ENDS
4 0000 DATA SEGMENT
5 0000 03E8*(20) SPACE DB 1000 DUP (' ')
6 03E8 06*(20) C9 1A*(CD) + PATTERN DB 6 DUP (' '),0C9H,26 DUP (0CDH),0BBH,6 DUP (' ')
7 BB 06*(20)
8 0410 06*(20) BA 1A*(20) + DB 6 DUP (' '),0BAH,26 DUP (20H),0BAH,6 DUP (' ')
9 BA 06*(20)
10 0438 06*(20) C8 1A*(CD) + DB 6 DUP (' '),0C8H,26 DUP (0CDH),0BCH,6 DUP (' ')
11 BC 06*(20)
12 0460 08*(3A) 0C*(20) DBUFFER DB 8 DUP (':'),12 DUP (' ')
13 0474 14*(20) DBUFFER1 DB 20 DUP (' ')
14 0488 0D 0A 50 4C 45 41 53+ STR1 DB 0DH,0AH, 'PLEASE INPUT DATE(1) OR TIME(2) OR QUIT(3): $'
15 45 20 49 4E 50 55 54+
16 20 44 41 54 45 28 31+
17 29 20 4F 52 20 54 49+
18 4D 45 28 32 29 20 4F+
19 52 20 51 55 49 54 28+
20 33 29 3A 20 24
21 04B7 DATA ENDS
22 0000 CODE SEGMENT
23 ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK1
24 0000 B8 0001 START: MOV AX,0001H
25 0003 CD 10 INT 10H
26 0005 B8 0000s MOV AX,DATA
27 0008 8E D8 MOV DS,AX
28 000A 8E C0 MOV ES,AX
29 000C BD 0000r MOV BP,OFFSET SPACE
30 000F BA 0B00 MOV DX,0B00H
31 0012 B9 03E8 MOV CX,1000
32 0015 BB 0040 MOV BX,0040H
33 ;MOV AX,1300H
34 ;INT 10H
35 0018 BD 03E8r MOV BP,OFFSET PATTERN
36 001B BA 0B00 MOV DX,0B00H
37 001E B9 0078 MOV CX,120
38 0021 BB 004E MOV BX,004EH
39 ;MOV AX,1301H
40 ;INT 10H
41 0024 BA 0488r LEA DX,STR1
42 0027 B4 09 MOV AH,9
43 0029 CD 21 INT 21H
44 002B B4 01 MOV AH,1
45 002D CD 21 INT 21H
46 002F 3C 31 CMP AL,31H
47 0031 75 03 JNE A
48 0033 E8 000F CALL DATE
49 0036 3C 32 A: CMP AL,32H
50 0038 75 03 JNE B
51 003A E8 0060 CALL TIME
52 003D 3C 33 B: CMP AL,33H
53 003F 75 BF JNE START
54 0041 B4 4C MOV AH,4CH
55 0043 CD 21 INT 21H
56
57 0045 DATE PROC NEAR
Turbo Assembler Version 4.1 08/05/21 13:11:51 Page 2
C:\DOCUME~1\ADMINI~1\MYDOCU~1\汇编程序\系统时间.ASM
58 0045 B4 2A DISPLAY2: MOV AH,2AH
59 0047 CD 21 INT 21H
60 0049 BE 0000 MOV SI,0
61 004C 8B C1 MOV AX,CX
62 004E BB 0064 MOV BX,100
63 0051 F6 F3 DIV BL
64 0053 8A DC MOV BL,AH
65 0055 E8 00AD CALL BCDASC1
66 0058 8A C3 MOV AL,BL
67 005A E8 00A8 CALL BCDASC1
68 005D 46 INC SI
69 005E 8A C6 MOV AL,DH
70 0060 E8 00A2 CALL BCDASC1
71 0063 46 INC SI
72 0064 8A C2 MOV AL,DL
73 0066 E8 009C CALL BCDASC1
74 0069 BD 0474r MOV BP,OFFSET DBUFFER1
75 006C BA 0C0D MOV DX,0C0DH
76 006F B9 0014 MOV CX,20
77 0072 BB 004E MOV BX,004EH
78 0075 B8 1301 MOV AX,1301H
79 0078 CD 10 INT 10H
80 007A B4 02 MOV AH,02H
81 007C BA 0300 MOV DX,0300H
82 007F B7 00 MOV BH,0
83 0081 CD 10 INT 10H
84 0083 BB 0018 MOV BX,0018H
85 0086 B9 FFFF REPEA: MOV CX,0FFFFH
86 0089 E2 FE REPEAT: LOOP REPEAT
87 008B 4B DEC BX
88 008C 75 F8 JNZ REPEA
89 008E B4 01 MOV AH,01H
90 0090 CD 16 INT 16H
91 0092 74 B1 JE DISPLAY2
92 0094 E9 FF69 JMP START
93 0097 B8 4C00 MOV AX,4C00H
94 009A CD 21 INT 21H
95 009C C3 RET
96 009D DATE ENDP
97
98 009D TIME PROC NEAR ;显示时间子程序
99 009D BE 0000 DISPLAY1: MOV SI,0
100 00A0 BB 0064 MOV BX,100
101 00A3 F6 F3 DIV BL
102 00A5 B4 2C MOV AH,2CH ;取时间
103 00A7 CD 21 INT 21H
104 00A9 8A C5 MOV AL,CH
105 00AB E8 0040 CALL BCDASC ;将时间数值转换成ASCII码字符
106 00AE 46 INC SI
107 00AF 8A C1 MOV AL,CL
108 00B1 E8 003A CALL BCDASC
109 00B4 46 INC SI
110 00B5 8A C6 MOV AL,DH
111 00B7 E8 0034 CALL BCDASC
112 00BA BD 0460r MOV BP,OFFSET DBUFFER
113 00BD BA 0C0D MOV DX,0C0DH
114 00C0 B9 0014 MOV CX,20
Turbo Assembler Version 4.1 08/05/21 13:11:51 Page 3
C:\DOCUME~1\ADMINI~1\MYDOCU~1\汇编程序\系统时间.ASM
115 00C3 BB 004E MOV BX,004EH
116 00C6 B8 1301 MOV AX,1301H
117 00C9 CD 10 INT 10H
118 00CB B4 02 MOV AH,02H
119 00CD BA 0300 MOV DX,0300H
120 00D0 B7 00 MOV BH,0
121 00D2 CD 10 INT 10H
122 00D4 BB 0018 MOV BX,0018H
123 00D7 B9 FFFF RE: MOV CX,0FFFFH
124 00DA E2 FE REA: LOOP REA
125 00DC 4B DEC BX
126 00DD 75 F8 JNZ RE
127 00DF B4 01 MOV AH,01H
128 00E1 CD 16 INT 16H
129 00E3 74 B8 JE DISPLAY1
130 00E5 E9 FF18 JMP START
131 00E8 B8 4C00 MOV AX,4C00H
132 00EB CD 21 INT 21H
133 00ED C3 RET
134 00EE TIME ENDP
135
136 00EE BCDASC PROC NEAR ;时间数值转换成ASCII码字符子程序
137 00EE 53 PUSH BX
138 00EF 98 CBW
139 00F0 B3 0A MOV BL,10
140 00F2 F6 F3 DIV BL
141 00F4 04 30 ADD AL,'0'
142 00F6 88 84 0460r MOV DBUFFER[SI],AL
143 00FA 46 INC SI
144 00FB 80 C4 30 ADD AH,'0'
145 00FE 88 A4 0460r MOV DBUFFER[SI],AH
146 0102 46 INC SI
147 0103 5B POP BX
148 0104 C3 RET
149 0105 BCDASC ENDP
150
151 0105 BCDASC1 PROC NEAR ;日期数值转换成ASCII码字符子程序
152 0105 53 PUSH BX
153 0106 98 CBW
154 0107 B3 0A MOV BL,10
155 0109 F6 F3 DIV BL
156 010B 04 30 ADD AL,'0'
157 010D 88 84 0474r MOV DBUFFER1[SI],AL
158 0111 46 INC SI
159 0112 80 C4 30 ADD AH,'0'
160 0115 88 A4 0474r MOV DBUFFER1[SI],AH
161 0119 46 INC SI
162 011A 5B POP BX
163 011B C3 RET
164 011C BCDASC1 ENDP
165 011C CODE ENDS
166 END START
Turbo Assembler Version 4.1 08/05/21 13:11:51 Page 4
Symbol Table
Symbol Name Type Value Cref (defined at #)
??DATE Text "08/05/21"
??FILENAME Text "系统时间"
??TIME Text "13:11:51"
??VERSION Number 040A
@CPU Text 0101H
@CURSEG Text CODE #1 #4 #22
@FILENAME Text 系统时间
@WORDSIZE Text 2 #1 #4 #22
A Near CODE:0036 47 #49
B Near CODE:003D 50 #52
BCDASC Near CODE:00EE 105 108 111 #136
BCDASC1 Near CODE:0105 65 67 70 73 #151
DATE Near CODE:0045 48 #57
DBUFFER Byte DATA:0460 #12 112 142 145
DBUFFER1 Byte DATA:0474 #13 74 157 160
DISPLAY1 Near CODE:009D #99 129
DISPLAY2 Near CODE:0045 #58 91
PATTERN Byte DATA:03E8 #6 35
RE Near CODE:00D7 #123 126
REA Near CODE:00DA #124 124
REPEA Near CODE:0086 #85 88
REPEAT Near CODE:0089 #86 86
SPACE Byte DATA:0000 #5 29
START Near CODE:0000 #24 53 92 130 166
STR1 Byte DATA:0488 #14 41
TIME Near CODE:009D 51 #98
Groups & Segments Bit Size Align Combine Class Cref (defined at #)
CODE 16 011C Para none #22 23
DATA 16 04B7 Para none #4 23 23 26
STACK1 16 0190 Para Stack #1 23
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -