从键盘上输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示 计数结果。
data segment
buf db 101,?,101 dup (?)
data ends
stack segment stack
dw 20h dup(?)
top label word
stack ends
code segment
assume ds:data,cs:code,ss:stack
p proc far
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
lea sp,top
;输入到缓冲区
lea dx,buf
mov ah,0ah
int 21h
;cx=输入的个数 si=指向缓冲区的开头
lea si,buf
inc si
mov cx,[si]
xor bx,bx
l1: inc si
cmp BYTE PTR[si],'0'
jb l1
cmp BYTE PTR[si],'9'
ja l1
inc bl
loop l1
;输出结果
mov cx,8
input:
rol bl,1
mov dl,bl
and dl,1
add dl,30h
mov ah,02h
int 21h
loop input
exit:
mov ah,4ch
int 21h
p endp
code ends
end p