代码
1 STA SEGMENT STACK
2 DW 40H DUP(?)
3 TOP LABEL WORD
4 STA ENDS
5
6 DAT SEGMENT
7 DATA DB 'DATA.TXT',0
8 DATA1 DW ?
9 NUM DW ?
10 BUFF DB 2 DUP(?)
11 ERRMSG DB 'ERROR',07,24H
12 DAT ENDS
13
14 CODE SEGMENT
15 ASSUME CS:CODE,DS:DAT,SS:STA
16 MAIN PROC FAR
17 MOV AX,STA
18 MOV SS,AX
19 LEA SP,TOP
20 MOV AX,DAT
21 MOV DS,AX
22 MOV NUM,0
23
24  ;----------------------------------
25  
26 MOV AH,3DH
27 MOV AL,0
28 LEA DX,DATA
29 INT 21H
30 JC ERROR
31 MOV DATA1,AX
32
33 ;-----------------------------------
34
35 L10: MOV AH,3FH
36 MOV BX,DATA1
37 MOV CX,2
38 LEA DX,BUFF
39 INT 21H
40 JC ERROR
41 CMP AX,0
42 JE L15
43
44 XOR AX,AX
45 XOR BX,BX
46
47 MOV BL,BUFF[0]
48 AND BL,0CFH
49 MOV AL,BUFF[1]
50 AND AL,0CFH
51 MOV CL,10
52 MUL CL
53 ADD AX,BX
54 CMP NUM,0
55 JNE LNEX
56 MOV NUM,AX
57 JMP L10
58 LNEX:
59 ADC NUM,AX
60 JMP L10
61 ;-----------------------------------
62
63 MOV SI,0
64 L15:XOR DX,DX
65 MOV DX,NUM
66
67 L100:XOR AX,AX
68 MOV AX,DX
69 MOV BL,10
70 DIV BL
71 MOV DL,AL
72 INC SI
73 PUSH AX
74 CMP AL,0
75 JA L100
76 CMP AL,0
77 JB L100
78
79 L30:MOV DL,30H
80 POP AX
81 ADD DL,AH
82 MOV AH,2
83 INT 21H
84 DEC SI
85 JNE L30
86
87 JMP EXIT
88
89
90 ;-----------------------------------
91 ERROR:
92 MOV AH,9
93 LEA DX,ERRMSG
94 INT 21H
95 JMP L0
96
97 EXIT:MOV AH,3EH
98 MOV BX,DATA1
99 INT 21H
100 JC ERROR
101
102
103 L0:MOV AH,4CH
104 INT 21H
105
106 MAIN ENDP
107 CODE ENDS
108 END MAIN
109

 

posted on 2010-05-13 13:05  KuSiuloong  阅读(147)  评论(0编辑  收藏  举报