| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 889 人关注过本帖
标题:大虾们赐教啊~~~~~~~~~~~
只看楼主 加入收藏
aaazzzzz
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-1-5
结帖率:75%
收藏
 问题点数:0 回复次数:2 
大虾们赐教啊~~~~~~~~~~~
写一个判别字符是否为数字符的子程序。
并利用该子程序把一个字符串中的所有数字符删除
dseg segment
string db "ab=c950=asd",0
dseg ends
cseg segment
     assume cs:cseg,ds:dseg
isdecm proc
cmp al '0'
jb isdecml
cmp al '9'
ja isdecml
clc
ret
isdecml:stc
ret
isdecm endp
start:mov ax,desg
      mov ds,ax
      mov si,offset string
      mov di,si
next:mov al [si]
     inc si
     or al,al
     jz ok
     call isdecm
     jnc next
     mov [di],al
     inc di
     jmp next
ok:mov [di],ai
   mov ah,4ch
   int 21h
    cseg ends end start

我怎么也弄不明白是怎么删除的。。。大家教教我啊
        
搜索更多相关主题的帖子: 子程序 字符串 
2011-01-22 18:56
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:0 
程序代码:
dseg segment
    string db "ab=c950=asd",0
dseg ends

cseg segment
     assume cs:cseg,ds:dseg

isdecm proc
    cmp al,'0'
    jb isdecml
    cmp al,'9'
    ja isdecml
    clc     ;清除CF位
    ret
isdecml:
    stc    ;设置CF位
    ret
isdecm endp

start:
    mov ax,dseg
          mov ds,ax
          mov si,offset string   
          mov di,si    ;注意si,di的指向和变化
next:
    mov al,[si]
         inc si
         or al,al
         jz ok
         call isdecm
         jnc next
         mov [di],al;重新写回去就删除了
         inc di
         jmp next
ok:
    mov [di],al
       mov ah,4ch
       int 21h
cseg ends 

end start
自己用DEBUG调试一下,看看ds段的内存变化就清楚了

技术问题,请不要以短消息方式提问
2011-01-24 13:00
aaazzzzz
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-1-5
收藏
得分:0 
为啥重新写回去就是删除了呢?那不是没有变化吗?

[ 本帖最后由 aaazzzzz 于 2011-1-26 00:34 编辑 ]
2011-01-24 19:51
快速回复:大虾们赐教啊~~~~~~~~~~~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024146 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved