|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 汇编论坛 』
→ 汇编中的一个小问题
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1614
人关注过本帖
标题:
汇编中的一个小问题
只看楼主
加入收藏
dinglxlove520
等 级:
新手上路
帖 子:1
专家分:0
注 册:2007-11-26
楼主
收藏
问题点数:0 回复次数:8
汇编中的一个小问题
各位大吓们,小弟刚学汇编很难懂,有些问题在此请教下,望各位别笑话我。
在汇编一个程序时有这样的报错,cmp [si],'$' 有报错后来我改了一下,cmp byte ptr [si],'$'就没错了。
我不懂为什么要这样修改后才可以呢。还有 cmp [si],bx 为什么就可以呢,怎么不用加byte prt.
搜索更多相关主题的帖子:
笑话
汇编
cmp
prt
byte
2007-11-26 18:25
举报帖子
使用道具
赠送鲜花
wubizao
来 自:荆州长大电信
等 级:
新手上路
帖 子:223
专家分:0
注 册:2006-6-24
第
2
楼
收藏
得分:0
'$'占一个字节
而si是16位的,两个字节
//8086
cmp [si],'$'
不指明比较的数据的长度,就不知道怎么比较了
而cmp [si],bx中
si,bx都是一样位数的
不需要指明
在路上走,看见了C,从此爱上了她
2007-11-26 18:34
举报帖子
使用道具
赠送鲜花
永夜的极光
等 级:
贵宾
威 望:
27
帖 子:2721
专家分:1
注 册:2007-10-9
第
3
楼
收藏
得分:0
楼上的解释是错误的,跟si是多少位的没有关系
cmp [si],'$'
[si]指的是si指向的地址里面保存的值,因为地址都是连续的,所以你可以从这个地址读取8个字节,作为byte,也可以读取16个字节,作为word,也可以读取32个字节,作为dword
'$'这个其实等价于24H($的ASCII码),可以作为byte理解,是24H,也可以作为word理解,是0024H,也可以作为dword,是00000024H(对于常数,编译器会自动根据需要在前面补0或者截取一部分)
发现了吗,这一个语句,没办法确切的表明,你是意图用byte,word,dword这三种类型中的哪一种来操作,所以编译器会给你提示错误,用这三种类型来解释出来的机器码不同,编译器不知道选那种.
cmp byte ptr [si],'$'
这样显式的指明了要用byte方式来处理这两个操作数,那编译器就懂了
cmp [si],bx
这个不需要指明,因为编译器知道,bx是16位的,也就是word类型,那么[si]也被解释为word类型,进行比较.
[[italic] 本帖最后由 永夜的极光 于 2007-11-26 20:54 编辑 [/italic]]
从BFS(Breadth First Study)到DFS(Depth First Study)
2007-11-26 20:52
举报帖子
使用道具
赠送鲜花
wubizao
来 自:荆州长大电信
等 级:
新手上路
帖 子:223
专家分:0
注 册:2006-6-24
第
4
楼
收藏
得分:0
看来俺基础不扎实,要继续努力
在路上走,看见了C,从此爱上了她
2007-11-27 08:11
举报帖子
使用道具
赠送鲜花
kr^zHaYj
等 级:
新手上路
帖 子:41
专家分:0
注 册:2007-11-25
第
5
楼
收藏
得分:0
受益良多
2007-11-27 10:12
举报帖子
使用道具
赠送鲜花
hejinjiang
等 级:
新手上路
帖 子:88
专家分:0
注 册:2007-5-15
第
6
楼
收藏
得分:0
好象只要涉及内存单元之间的比较.都要加byte,word,dword这些来限制吧?
我也是刚学..
<.不怕默默无闻,就怕碌碌无为.,}
2007-11-27 11:11
举报帖子
使用道具
赠送鲜花
dinglxlove
等 级:
新手上路
帖 子:9
专家分:0
注 册:2007-9-25
第
7
楼
收藏
得分:0
是不是cmp 指令 的两操作数的宽度必须一致呢。
不然cmp [si],bx怎么就不用写成cmp word ptr [si],bx
2007-11-27 12:05
举报帖子
使用道具
赠送鲜花
jfjfgz
等 级:
新手上路
帖 子:100
专家分:0
注 册:2007-11-21
第
8
楼
收藏
得分:0
2007-11-27 14:11
举报帖子
使用道具
赠送鲜花
永夜的极光
等 级:
贵宾
威 望:
27
帖 子:2721
专家分:1
注 册:2007-10-9
第
9
楼
收藏
得分:0
原帖由 [bold][underline]hejinjiang[/underline][/bold] 于 2007-11-27 11:11 发表 [url=http://bbs.]
" border="0" />[/url]
好象只要涉及内存单元之间的比较.都要加byte,word,dword这些来限制吧?
我也是刚学..
我记得只有byte ptr 和word ptr这两种,没有dword ptr的
从BFS(Breadth First Study)到DFS(Depth First Study)
2007-11-27 18:11
举报帖子
使用道具
赠送鲜花
9
1/1页
1
快速回复:
汇编中的一个小问题
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.022683 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved