1 STA SEGMENT STACK
2 DW 40H DUP(?)
3 TOP LABEL WORD
4 STA ENDS
5
6 DATA SEGMENT
7 LIST DW 300 DUP(?)
8 CRLF DB 0DH,0AH,24H
9 DATA ENDS
10
11 CODE SEGMENT
12 ASSUME CS:CODE,DS:DATA,SS:STA,ES:DATA
13 MAIN PROC FAR
14 MOV AX,STA
15 MOV SS,AX
16 LEA SP,TOP
17 MOV AX,DATA
18 MOV DS,AX
19 MOV AX,DATA
20 MOV ES,AX
21
22  ;---------------------------------------------------------------------------------------
23  
24 MOV BP,0
25 MOV SI,0
26 L33: MOV CX,5
27
28 XOR BX,BX
29 L22:MOV AH,1
30 INT 21H
31
32 CMP AL,' '
33 JE L34
34 CMP AL,0DH
35 JE L35
36
37 CMP AL,30H ;判断0~9之间的数
38 JB L22
39 CMP AL,39H
40 JBE L23 ;若为数字,跳到L23行
41
42 CMP AL,41H ;判断在A~F之间
43 JB L22
44 CMP AL,46H
45 JBE L24 ;若为A~F范围数跳到24行
46
47 CMP AL,61H ;判断a~f范围数
48 JB L22
49 CMP AL,66H
50 JA L22
51
52 SUB AL,20H ;若为小写字母,则先减20跳到大写字母处
53
54 L24: SUB AL,7
55
56 L23: SUB AL,30H
57 PUSH CX
58 MOV CL,4
59 SHL BX,CL
60 ADD BL,AL
61 POP CX
62 LOOP L22
63
64 L34: MOV LIST[SI],BX
65 ADD SI,2
66 INC BP
67 JMP L33
68
69
70 L35:
71 MOV LIST[SI],BX
72 INC BP
73
74 MOV AH,9
75 LEA DX,CRLF
76 INT 21H
77
78 LEA SI,LIST
79
80 ;--------------------------------------------------------------------------------------
81
82
83
84 MOV CX,BP
85 MOV DI,SI
86 CLD
87 XOR BP,BP
88 L1: LODSW
89 TEST AX,8000H
90 JNZ L2
91 STOSW
92 INC BP
93 L2:LOOP L1
94
95 ;--------------------------------------------------------------------------------开始处理
96
97 MOV SI,0
98 L111:
99 MOV BX,LIST[SI]
100 OR BX,BX
101 JNS L20 ;若sp为0时转移
102
103 MOV DL,'-'
104 MOV AH,2
105 INT 21H
106 NEG BX
107
108 ;--------------------------------------------------------------------------------------------此步多余,可删
109
110 L20:
111
112 MOV AX,BX
113 MOV CX,0
114
115 L30:XOR DX,DX
116 MOV BX,10
117 DIV BX
118 PUSH DX
119 INC CX
120 CMP AX,0
121 JNE L30
122
123 ;--------------------------------------------------------------------得出的十进制数进栈
124
125
126 L40:
127
128 POP DX
129 ADD DL,30H
130 MOV AH,2
131 INT 21H
132 LOOP L40
133
134 MOV DL,' '
135 MOV AH,2
136 INT 21H
137 ADD SI,2
138 DEC BP
139 JNE L111
140
141 ;---------------------------------------------------------------------
142
143 MOV AH,4CH
144 INT 21H
145 MAIN ENDP
146 CODE ENDS
147 END MAIN
148

 

posted on 2010-04-28 22:13  KuSiuloong  阅读(273)  评论(0编辑  收藏  举报