| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1027 人关注过本帖
标题:[讨论]这个程序有错吗?
只看楼主 加入收藏
duhuan27
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-11-29
收藏
得分:0 
版主可不可以把正确的写出来啊
我就是mov cx,18
mov result,cx 看不懂
为什么要把18给result

为自己补课
2006-11-29 22:21
wchx215
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2006-9-4
收藏
得分:0 
eseg segment
string db 'the data is FEB&03','$'
eseg ends
cseg segment
assume cs:cseg,es:eseg
start:
mov ax,eseg
mov es,ax
lea di,string
mov al,'&'
mov cx,18
sign: cld
repnz scasb
mov byte ptr es:[di-1],20H
assume ds:eseg
mov ax,eseg
mov ds,ax
lea dx,string
mov ah,09h
int 21h
mov ax,4c00h
int 21h
cseg ends
end start
你的程序我看不大懂,我就改了比较多了,供参考!
2006-11-30 12:32
曾小
Rank: 1
等 级:新手上路
威 望:1
帖 子:239
专家分:0
注 册:2006-9-27
收藏
得分:0 
我把 18 放到 result 中是想方便mov [result][di],20H
指令的执行.我也不怎么确定.
12楼的同学:你的程序运行了不?我怕我又弄不出来.
希望更多的同学提出更多的方法!
谢谢!
我现在试着解释一下我的程序吧!

2006-11-30 14:02
srl9973
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2006-9-18
收藏
得分:0 
dseg segment
result dw ?
dseg ends
eseg segment
string db 'the data is FEB&03'
eseg ends
cseg segment
assume cs:cseg,ds:dseg,es:eseg
start: mov ax,dseg
mov ds,ax
mov ax,eseg
mov es,ax
lea di,string
mov al,'&'
mov cx,18
mov result,cx
sign: cld
repnz scasb
jcxz ll
mov es:[di-1],byte ptr 20h


; sub result,cx  ;将原来的cx 即 result 的值与现在的cx 的值相减,得到所要找的字符的位置
;mov [result][di],20H;将找到的位置里的内容换成空格
jmp sign
mov ah,4ch
int 21h
cseg ends
end start
2006-11-30 15:06
wchx215
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2006-9-4
收藏
得分:0 

首先说一下,我的程序自己已经运行过了。
楼主的程序是有错的,14楼的解释是对的。
楼主估计是这个意思,但是在repnz scasb过程中di已经变化了,不是0,所以可以加一句lea si,string
mov [result-1][si],20h还有顺便说一下,直接运行mov byte ptr es:[result-1][si],20h是不行的,链接不通过
我按楼主的意思又改了一下,我已经运行过了。
dseg segment
result dw ?
dseg ends
eseg segment
string db 'the data is FEB&03','$'
eseg ends
cseg segment
assume cs:cseg,ds:dseg,es:eseg
start: mov ax,dseg
mov ds,ax
mov ax,eseg
mov es,ax
lea di,string
lea si,string
mov al,'&'
mov cx,18
mov result,cx
sign: cld
repnz scasb
jcxz show
sub result,cx ;将原来的cx 即 result 的值与现在的cx 的值相减,得到所要找的字符的位置
mov bx,result
mov byte ptr es:[bx-1][si],20H ;将找到的位置里的内容换成空格

jmp sign
show: assume ds:eseg
mov ax,eseg
mov ds,ax
lea dx,string
mov ah,09h
int 21h

mov ah,4ch
int 21h
cseg ends
end start

2006-11-30 18:07
曾小
Rank: 1
等 级:新手上路
威 望:1
帖 子:239
专家分:0
注 册:2006-9-27
收藏
得分:0 
我已经按12楼的意思运行出来了
我意识到di是会变的。
谢谢各位!!呵呵!

2006-12-01 16:03
快速回复:[讨论]这个程序有错吗?
数据加载中...
 
   



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

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