汇编网首页登录博客注册
masmaster的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
文章收藏

[2010-09-08 09:25] 习题4.21

写一个程序实现如下功能:先从键盘上输入一个字符串,然后显示该字符串中非数字或字母字符的个数

答:
;----------------------------------------------------;
buffer  db      10,10,10 dup (0)  ;输入缓冲区
count   db      0                 ;个数
data    ends
code    segment
start:
        mov ax,data
        mov ds,ax
        mov dx,offset buffer      ;装入缓冲区地址
        mov ah,0ah                ;调用0ah号功能
        int 21h                   ;输入字符串
        mov cl,buffer+1           ;取循环次数
        mov bx,offset buffer+2    ;取字符串偏移地址
L:      mov al,[bx]               ;开始循环比较
        cmp al,30h                ;是否小于0
        jl ok
        cmp al,39h                ;是否大于9
        jg l1
        jmp jx
l1:     cmp al,41h                ;是否小于A
        jl ok
        cmp al,5ah                ;是否小于Z
        jl ok
        cmp al,61h                ;是否小于a
        jl ok
        cmp al,7ah                ;是否大于z
        jg ok
        jmp jx
ok:     inc count                 ;计数器增量
jx:     inc bx
        loop L
        mov dl,0ah                ;回车
        mov ah,2
        int 21h
        mov dl,count              ;打印
        add dl,30h
        mov ah,2
        int 21h
        mov ah,4ch
        int 21h
code    ends
end     start

d:\MASM>
;----------------------------------------------------;
评论次数(0)  |  浏览次数(469)  |  类型(汇编习题集) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码