| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1027 人关注过本帖
标题:[讨论]这个程序有错吗?
只看楼主 加入收藏
曾小
Rank: 1
等 级:新手上路
威 望:1
帖 子:239
专家分:0
注 册:2006-9-27
收藏
 问题点数:0 回复次数:15 
[讨论]这个程序有错吗?
这个程序是将字符 '&' 替换成 空格,但得不到预想的结果.
帮忙该一下.谢谢!
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 si,string
mov al,'&'
mov cx,18
mov result,cx
sign: cld
repz scasb
sub result,cx  ;将原来的cx 即 result 的值与现在的cx 的值相减,得到所要找的字符的位置
mov [result][di],20H;将找到的位置里的内容换成空格
loop sign
ret
cseg ends
end start

[此贴子已经被作者于2006-11-30 14:09:12编辑过]

搜索更多相关主题的帖子: mov segment eseg dseg 
2006-11-29 19:08
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 

很久没有接触汇编,可能说的不对。会不会是你的mov cx,18有问题?“&”的ASCII码是26H,十进制数是38。而你将18(PgUp键值)存入了result单元中了。

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 si,string
mov al,'&'
mov cx,18
mov result,cx ;PgUp的键值存入resul单元中
sign: cld
repz scasb
sub result,cx
mov [result][di],20H
loop sign
ret
cseg ends
end star


活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2006-11-29 20:04
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
mov [result][di],20H是什么意思啊?

2006-11-29 20:06
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
应该有个加号吧,如下:
mov [result]+[di],20H

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2006-11-29 20:08
曾小
Rank: 1
等 级:新手上路
威 望:1
帖 子:239
专家分:0
注 册:2006-9-27
收藏
得分:0 
我是想通过这条指令:

mov [result][di],20H

将空格(20h)替换到[result][di]这个单元中去!

有问题?

我将 cx放到result中去和字符 '& '没有关系!

2006-11-29 20:17
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
直接数能够MOV到内存单元吗?可能要通过寄存器转存吧!

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2006-11-29 20:19
曾小
Rank: 1
等 级:新手上路
威 望:1
帖 子:239
专家分:0
注 册:2006-9-27
收藏
得分:0 
不可以吗?
我没注意!错误在:19行:must be index or base register
是这个的原因吗?

2006-11-29 20:25
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 

我记得立即数是不能MOV到内存单元和段寄存器中的,应该通过通用寄存器转存。


活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2006-11-29 20:34
曾小
Rank: 1
等 级:新手上路
威 望:1
帖 子:239
专家分:0
注 册:2006-9-27
收藏
得分:0 
我刚才改了,还是达不到预想的结果.
其他地方有什么问题吧/要不然怎么没结果!!!

2006-11-29 20:39
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
以下是引用hu9jj在2006-11-29 20:34:36的发言:

我记得立即数是不能MOV到内存单元和段寄存器中的,应该通过通用寄存器转存。

同意!


2006-11-29 20:41
快速回复:[讨论]这个程序有错吗?
数据加载中...
 
   



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

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