搜索
编程论坛
→
开发语言
→
『 汇编论坛 』
→ mov 指令不能数据结构指针传送,结构的成员
标题:
mov 指令不能数据结构指针传送,结构的成员
只看楼主
asd577586785
等 级:
新手上路
帖 子: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
来 自:china
等 级:
贵宾
威 望:
254
帖 子:11485
专家分:33241
注 册:2007-7-10
第
2
楼
得分:0
因为addr是个伪指令 本质上是类似 ebp+n 的形式 而这种表达式的求值只能在运行的时候进行 addr又没高级到用lea 所以失败
而全局的在编译出来之后就是确定的数了 相对于mov mem, imm 立即数送到内存变量 这种方式是允许的 所以成功
多说一句 宏汇编 毕竟是比较低级的 说到底还是要转换为汇编指令的 编译器不知道怎么转 只能报错
2014-02-04 11:56
asd577586785
等 级:
新手上路
帖 子:6
专家分:0
注 册:2011-7-30
第
3
楼
得分:0
回复 2楼 zklhp
但是 罗云彬的win32汇编语言程序设计中讲过。addr 局部变量,是被编译成 lea,eax,局部变量 的形式。 所以应该不存在你说的这个问题。
版主我这个是写的windows程序,是用汇编写的。我在看罗云彬的windows程序开发, 本来是想学C的windows程序开发, 但没找到好书! 在网上看了几本C的windows开发电子书,都觉得没老罗这本好,
2014-02-05 11:58
zklhp
来 自:china
等 级:
贵宾
威 望:
254
帖 子:11485
专家分:33241
注 册:2007-7-10
第
4
楼
得分: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
等 级:
新手上路
帖 子:6
专家分:0
注 册:2011-7-30
第
5
楼
得分:0
回复 4楼 zklhp
版主教训得是!!! 以后看书一定会用心再用心!! 版主大人多虑啦,和我同年的还在上高中我就已经上班了啦!!!
2014-02-05 17:42
5
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-427031-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.109846 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved