| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 787 人关注过本帖
标题:mov 指令不能数据结构指针传送,结构的成员
只看楼主 加入收藏
asd577586785
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-7-30
结帖率:50%
收藏
 问题点数:0 回复次数:4 
mov 指令不能数据结构指针传送,结构的成员
LOCAL    @Print[100]:byte
LOCAL    @Pct:CHOOSEFONT
LOCAL    @Log:LOGFONT

               mov    @Pct.lpLogFont,addr  @Log ;这条语句会报错,但是我把@Log定义为全局变量就不会报错了。这是为什么呢?为什么不能把用局部变量定义的数据结构@Log的地址传送给结构成员??

[ 本帖最后由 asd577586785 于 2014-2-4 11:47 编辑 ]
2014-02-04 11:44
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
因为addr是个伪指令 本质上是类似 ebp+n 的形式 而这种表达式的求值只能在运行的时候进行 addr又没高级到用lea 所以失败

而全局的在编译出来之后就是确定的数了 相对于mov mem, imm 立即数送到内存变量 这种方式是允许的 所以成功

多说一句 宏汇编 毕竟是比较低级的 说到底还是要转换为汇编指令的 编译器不知道怎么转 只能报错
2014-02-04 11:56
asd577586785
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-7-30
收藏
得分:0 
回复 2楼 zklhp
但是 罗云彬的win32汇编语言程序设计中讲过。addr 局部变量,是被编译成 lea,eax,局部变量 的形式。 所以应该不存在你说的这个问题。


版主我这个是写的windows程序,是用汇编写的。我在看罗云彬的windows程序开发, 本来是想学C的windows程序开发, 但没找到好书! 在网上看了几本C的windows开发电子书,都觉得没老罗这本好,
2014-02-05 11:58
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用asd577586785在2014-2-5 11:58:33的发言:

但是 罗云彬的win32汇编语言程序设计中讲过。addr 局部变量,是被编译成 lea,eax,局部变量 的形式。 所以应该不存在你说的这个问题。
 
 
版主我这个是写的windows程序,是用汇编写的。我在看罗云彬的windows程序开发, 本来是想学C的windows程序开发, 但没找到好书! 在网上看了几本C的windows开发电子书,都觉得没老罗这本好,

看书不专心 你怎么不看看罗云彬后面又写了什么

图片附件: 游客没有浏览图片的权限,请 登录注册


不论是用C语言开发Windows程序也好 用汇编开发Windows程序也好 实际开发中用的很少 因为效率太低 但这是一种学习Windows编程的方法 用C语言开发Windows程序有 Windows程序设计 Aogo网站上还有把里面的例子程序转换为汇编的版本

但说到底 这种开发实际用处不大 你要这么学可能连工作都找不到 别怪我没告诉你

[ 本帖最后由 zklhp 于 2014-2-5 14:34 编辑 ]
2014-02-05 14:32
asd577586785
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-7-30
收藏
得分:0 
回复 4楼 zklhp
版主教训得是!!! 以后看书一定会用心再用心!! 版主大人多虑啦,和我同年的还在上高中我就已经上班了啦!!!
2014-02-05 17:42
快速回复:mov 指令不能数据结构指针传送,结构的成员
数据加载中...
 
   



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

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