一个汇编程序
汇编代码
max =128
data segment
buffer1 db max
db ?
db max dup (0)
buffer2 db 'figure number:$'
buffer3 db 'character number:$'
data ends
code segment
assume ds:data,cs:code
start:mov ax,data
mov dx,offset buffer1
mov ah,10
int 21h
mov bh,0
mov bl,0
call newline
mov si,offset buffer1+2
mov cl,buffer1+1
mov ch,0
again: mov al,[si]
inc si
cmp al,'0'
jb next
cmp al,'9'
ja nodec
inc bh
jmp short next
nodec:or al,20h
cmp al,'a'
jb next
cmp al,'z'
ja next
inc bl
next: loop again
i: mov dx,offset buffer2
mov ah,9
int 21h
mov al,bh
xor ah,ah
call display
call newline
mov dx,offset buffer3
mov ah,9
int 21h
mov al,bl
xor ah,ah
call display
mov ax,4c00h
int 21h
put proc
mov ah,2
int 21h
ret
put endp
newline proc
push ax
push dx
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
mov ah,2
int 21h
pop dx
pop ax
ret
newline endp
display proc
mov cx,3
mov dl,10
dis: div dl
xchg ah,al
add al,'0'
push ax
xchg ah,al
mov ah,0
loop dis
mov cx,3
dis2:pop dx
call put
loop dis2
ret
display endp
code ends
end start
这个程序先从键盘输入一个字符串,然后显示非数字字符和字母字符的个数
编译没问题
但运行的结果出呼意料
各大神,看看吧
帮忙解答下