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

我的博客

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

[2010-09-08 09:49] 习题4.22

写一个程序实现如下功能:先从键盘输入一个字符串。然后在下一行显示虑去字母后的字符串;最后在另一行显示大小写字母翻转的字符串。

答:
;----------------------------------------------------;
assume        cs:code,ds:data
data        segment
buffer        db        10,10,10 dup (0)  ;输入缓冲区
data        ends
code        segment
start:
        mov ax,data
        mov ds,ax
        mov dx,offset buffer      ;装入缓冲区地址
        mov ah,0ah                ;调用0ah号功能输入
        int 21h
        call cr                   ;回车
        mov bx,offset buffer+2    ;取字符串首地址
        mov cl,buffer+1           ;取字符串长度
l1:        mov al,[bx]               ;开始比较
        cmp al,41h                ;是否小于A
        jb x1
        cmp al,5ah                ;是否小于Z
        jb jx1
        cmp al,61h                ;是否小于a
        jb x1
        cmp al,7ah                ;是否大于z
        ja x1
        jmp jx1
x1:        mov dl,al                 ;显示非字母字符
        mov ah,2
        int 21h
jx1:        
        inc bx
        loop l1

        call cr                   ;回车

        mov bx,offset buffer+2    ;同上
        mov cl,buffer+1           ;同上
l2:        mov al,[bx]               ;开始比较
        cmp al,41h                ;是否小于A
        jb jx2
        cmp al,5ah                ;是否大于Z
        ja j
        add al,20h                ;大写变小写
        mov dl,al                 ;并显示
        mov ah,2
        int 21h
        jmp jx2
j:        cmp al,61h                ;是否小于a
        jb jx2
        cmp al,7ah                ;是否大于z
        ja jx2
        sub al,20h                ;小写变大写
        mov dl,al                 ;并显示
        mov ah,2
        int 21h
jx2:        inc bx
        loop l2

        mov ah,4ch                ;程序结束
        int 21h
cr        proc
        mov dl,0dh
        mov ah,2
        int 21h
        mov dl,0ah
        mov ah,2
        int 21h
        ret
cr        endp
code        ends
end        start
;----------------------------------------------------;
评论次数(0)  |  浏览次数(351)  |  类型(汇编习题集) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码