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

我的博客

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

[2009-02-04 02:34] 推荐博文 【实验6补充】问题7.9的拓展

在学到问题7.9(即实验6)时,我曾经提出过一个问题,就是能不能同时处理不同长度的字符串。学到第十章,已经可以解决这个遗留问题。可以处理两种情况:
<1>即课本上的情况,每行都为16个字节,但每行的单词字母个数不相等。
<2>单词字母个数不同,且单词为一个挨着一个,以0分隔。
现以情况<2>为例说明:
思路:共四个单词,外循环4次。每次对每个单词执行小写转大写。用jcxz结束当前单词,内存地址依次增加即可。情况<1>与此类似,不同在于内存地址第二次从第二行开始,以此类推。
【代码】
assume cs:code
data segment
   db 'display',0
   db 'brows',0
   db 'replace',0
   db 'modify',0
data ends

code segment

  start:mov ax,data
        mov ds,ax
        mov si,0
        mov cx,4
       
      s:call capital
        inc si
        loop s

        mov ax,4c00h
        int 21h

capital:push cx

 change:mov cl,[si]
        mov ch,0
        jcxz ok
        and byte ptr [si],11011111b
        inc si
        jmp short change

     ok:pop cx
        ret
code ends
end start
做为一个对实验6的补充吧,实验6地址http://www.asmedu.net/blog/user/postcontent.jsp?neighborId=18153&kindLevel=1&kindId=28009&postId=30069&readSg=1
评论次数(1)  |  浏览次数(1220)  |  类型(汇编作业) |  收藏此文  | 

[  游客   发表于  2009-02-05 16:18  ]

嗯。博主行为很值得俺学习。呵呵
这样前后衔接,想必理解肯定不一般。

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码