汇编语言小型程序设计代码

1 STACK SEGMENT STACK
2 DB 128 DUP(0)
3 STACK ENDS
4 DATA SEGMENT
5 N = 90
6 A DB 0
7 BUF DB N DUP(' '),13,10,'$'
8 TEMPBUF DB 3,0,3 DUP(0),13,10,'$'
9 SCORE DB 30 DUP(0)
10 HSCORE DB 2 DUP(' '),13,10,'$'
11 HSCORESTR DB 'High score: $'
12 TITLESTR DB 'Please input 30 students score.',13,10,'$'
13 ALLSCORESTR DB 'All students score: $'
14 INSTR1 DB ' Please input number ','$'
15 INSTR2 DB ', score: ','$'
16 INSTRERROR DB 'Error! Please input, again.',13,10,'$'
17 EXIT DB 'Process is over, input everything to exit. Input: ','$'
18 DATA ENDS
19 CODE SEGMENT
20 ASSUME CS:CODE, DS:DATA, SS:STACK
21 START:
22 MOV AX,DATA
23 MOV DS,AX
24 MOV AX,STACK
25 MOV SS,AX
26
27 LEA DX,TITLESTR
28 MOV AH,9
29 INT 21H
30 CALL INPUT
31 LEA DX,ALLSCORESTR
32 MOV AH,9
33 INT 21H
34 CALL CRLF
35 LEA DX,BUF+1
36 MOV AH,9
37 INT 21H
38 CALL CRLF
39 CALL TONUM
40
41 CALL CPSCORE
42 LEA DX,HSCORESTR
43 MOV AH,9
44 INT 21H
45 LEA DX,HSCORE+1
46 MOV AH,9
47 INT 21H
48
49
50 LEA DX,EXIT
51 MOV AH,9
52 INT 21H
53 LEA DX,TEMPBUF
54 MOV AH,0AH
55 INT 21H
56
57 MOV AH,4CH
58 INT 21H
59
60 CPSCORE PROC
61 PUSH CX
62 PUSH SI
63 PUSH AX
64 PUSH DI
65 PUSH BX
66
67 MOV CH,0
68 MOV CL,29
69 LEA SI,SCORE+1
70 MOV AL,[SI]
71 CPSCOREL:
72 INC SI
73 MOV BL,[SI]
74 CMP AL,BL
75 JAE CPSCOREJMP
76 MOV AL,[SI]
77
78 CPSCOREJMP:
79 LOOP CPSCOREL
80
81 LEA DI,HSCORE+1
82 MOV BL,AL
83 MOV CL,4
84 SHR BL,CL
85 ADD BL,30H
86 MOV [DI],BL
87 MOV BL,AL
88 AND BL,0FH
89 ADD BL,30H
90 MOV [DI+1],BL
91
92 POP BX
93 POP DI
94 POP AX
95 POP SI
96 POP CX
97 RET
98 CPSCORE ENDP
99 TONUM PROC
100 PUSH DI
101 PUSH AX
102 PUSH CX
103 PUSH BX
104 PUSH SI
105
106 MOV CH,0
107 MOV CL,30
108
109 LEA DI,BUF+1
110 LEA SI,SCORE+1
111 TONUML:
112 MOV AL,[DI]
113 PUSH CX
114 MOV CL,4
115 SHL AL,CL
116 POP CX
117 MOV BL,AL
118 MOV AL,[DI+1]
119 AND AL,0FH
120 OR AL,BL
121 MOV [SI],AL
122 INC SI
123 ADD DI,3
124 LOOP TONUML
125
126 POP SI
127 POP BX
128 POP CX
129 POP AX
130 POP DI
131 RET
132 TONUM ENDP
133 BCDTOASCII PROC
134 PUSH AX
135 PUSH BX
136 PUSH CX
137 PUSH DX
138
139 MOV AL,BL
140 MOV CL,4
141 SHR AL,CL
142 ADD AL,30H
143 MOV DL,AL
144 MOV AH,02H
145 INT 21H
146
147 MOV AL,BL
148 AND AL,0FH
149 ADD AL,30H
150 MOV DL,AL
151 MOV AH,02H
152 INT 21H
153
154 POP DX
155 POP CX
156 POP BX
157 POP AX
158 RET
159 BCDTOASCII ENDP
160 INPUT PROC
161 PUSH SI
162 PUSH CX
163 PUSH DX
164 PUSH AX
165 PUSH BX
166
167 LEA SI,BUF+1
168 MOV CH,0
169 MOV CL,1
170 INPUTSTART:
171 LEA DX,INSTR1+1
172 MOV AH,09H
173 INT 21H
174 MOV BX,CX
175 CALL BDC
176 LEA DX,INSTR2
177 MOV AH,9
178 INT 21H
179
180
181 LEA DX,TEMPBUF
182 MOV AH,0AH
183 INT 21H
184 CALL CRLF
185 LEA DI,TEMPBUF+1
186
187 MOV AL,[DI+1]
188 CMP AL,30H
189 JL ERRORITEM
190 CMP AL,39H
191 JG ERRORITEM
192 MOV CH,[DI]
193 CMP CH,1
194 MOV CH,0
195 JE TEMPJMP1
196 MOV AL,[DI+2]
197 CMP AL,30H
198 JL ERRORITEM
199 CMP AL,39H
200 JG ERRORITEM
201 JMP TEMPJMP2
202
203 TEMPJMP1:
204
205 MOV [DI+2],AL
206 MOV AL,30H
207 MOV [DI+1],AL
208 TEMPJMP2:
209 MOV AL,[DI+1]
210 MOV [SI],AL
211 MOV AL,[DI+2]
212 MOV [SI+1],AL
213 MOV AL,' '
214 MOV [SI+2],AL
215
216 ADD SI,3
217 INC CL
218
219 CMP CL,31
220 JE INPUTEXIT
221 JMP INPUTSTART
222
223 ERRORITEM:
224 LEA DX,INSTRERROR
225 MOV AH,9
226 INT 21H
227 JMP INPUTSTART
228 INPUTEXIT:
229
230 POP BX
231 POP AX
232 POP DX
233 POP CX
234 POP SI
235 RET
236 INPUT ENDP
237 BDC PROC
238 PUSH CX
239 MOV A,30H
240 MOV CX,10000
241 CALL DISP
242 MOV CX,1000
243 CALL DISP
244 MOV CX,100
245 CALL DISP
246 MOV CX,10
247 CALL DISP
248 MOV CX,1
249 CALL DISP
250 POP CX
251 RET
252 BDC ENDP
253 DISP PROC
254 PUSH AX
255 PUSH CX
256 PUSH DX
257 MOV AX,BX
258 MOV DX,0
259 DIV CX
260 MOV BX,DX
261
262 MOV CL,A
263 CMP CL,31H
264 JE DISPJMP
265 CMP AL,0
266 JE DISPL1
267 DISPJMP:
268 MOV DL,AL
269 ADD DL,30H
270 MOV AH,2
271 INT 21H
272 MOV A,31H
273 DISPL1:
274 POP DX
275 POP CX
276 POP AX
277 RET
278 DISP ENDP
279 CRLF PROC
280 PUSH AX
281 PUSH DX
282 MOV DL,0DH
283 MOV AH,2
284 INT 21H
285 MOV DL,0AH
286 MOV AH,2
287 INT 21H
288 POP DX
289 POP AX
290 RET
291 CRLF ENDP
292 CODE ENDS
293 END START

posted on 2011-05-06 19:13  _Clarence  阅读(360)  评论(0编辑  收藏  举报

导航