27,373
社区成员
发帖
与我相关
我的任务
分享
DATA SEGMENT
BUF DB 255 ;
DB ?
DB 255 DUP('$')
C DW 0 ;数字
M DB 0DH, 0AH, "DIGITA:$"
DATA ENDS
STACK SEGMENT STACK
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX, DATA
MOV DS, AX
MOV ES, AX
;输入串
LEA DX, BUF
MOV AH,0AH
INT 21H
XOR CX, CX
MOV CL, BUF+1
MOV SI, 0
LOOP1:
MOV AL, BUF[SI+2]
CMP AL, '#'
JZ LOPEND
CMP AL, 20H
JZ T
CMP AL, '0'
JB T1
CMP AL, '9'
JA T1
INC C ;数字
JMP LOP
T:
JMP LOP
T1:
LOP:
INC SI
LOOP LOOP1
LOPEND:
; 输出结果
LEA DX, M
MOV AH, 9
INT 21H
MOV AX, C
CALL PRINT
;EXIT TO OS
MOV AH,4CH
INT 21H
PRINT PROC NEAR
MOV BX, 10
XOR CX, CX
Q0:
XOR DX, DX
DIV BX
OR DX, 0E30H
PUSH DX
INC CX
CMP AX, 0
JNZ Q0
Q1:
POP AX
INT 10H
LOOP Q1
RET
PRINT ENDP
CODE ENDS
END START