标题:del di?
只看楼主
shaoyuan
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2008-9-7
结帖率:100%
 问题点数:0 回复次数:2 
del di?
data    segment
char    equ '$'
ptrn    db  'this is a example $'
charddr  dw  ?
count   equ  19
data    ends

coseg   segment
        assume cs: coseg,ds:data
start:    mov ax,data
mov ds,ax
mov di,offset ptrn
mov al,char
mov cx ,count
cld
repne scasb
jz    pasepr
mov di,1
pasepr:del di
mov charddr,di
mov ah,4ch
int 21h
coseg    ends
end start
这个程序那里出错了?
搜索更多相关主题的帖子: del di? 
2008-11-18 22:48
cnhanxiao
Rank: 2
等 级:新手上路
威 望:4
帖 子:124
专家分:0
注 册:2008-10-17
得分:0 
回复 1# 的帖子
repne scasb

scasb需要ES:DI来定位,但是你程序中没有装填ES.

assume cs: coseg,ds:data,es:data
...
start:    mov ax,data
mov ds,ax
mov es,ax

太困,其他没仔细看,还有问题请留贴

还有绑架成版主的?拒绝做版主——对不起啊!
2008-11-19 00:52
ONEPROBLEM
Rank: 6Rank: 6
来 自:广西 南宁
等 级:贵宾
威 望:21
帖 子:1569
专家分:349
注 册:2008-7-11
得分:0 
你的程序不是统计目标串的字符个数吗?
data    segment
char    equ '$'
ptrn    db  'this is a example $'
charddr  dw  ?
count   equ  19
data    ends

coseg   segment
        assume cs: coseg,ds:data
start:    mov ax,data
mov ds,ax                       ;这句不能少,否则保存字符串个数的时候,会保存到错误的地址去.
mov es,ax       ;也要有这语句,因为,目标串的默认段地址是es
mov di,offset ptrn
mov al,char
mov cx ,count
cld
repne scasb
jz    pasepr       ;多余,因为上一条语句已经包含了这种判断
mov di,1       ;同上.
pasepr:del di ;这句改为dec di ,"pasepr"不要了.因为当判断到"$"时,正好多了这个字符   
mov charddr,di
mov ah,4ch
int 21h
coseg    ends
end start
收到的鲜花
  • zklhp2008-11-20 15:56 送鲜花  50朵   附言:我很赞同
2008-11-19 18:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-245069-1-1.html




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

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