| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 10647 人关注过本帖
标题:[求助]初学汇编 请教关于OFFSET指令的问题
取消只看楼主 加入收藏
火奴
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-10-24
收藏
 问题点数:0 回复次数:3 
[求助]初学汇编 请教关于OFFSET指令的问题

我学习的是intel的汇编

例:.data
aa byte ?
.code
mov EAX,OFFSET aa

OFFSET 指令返回的是数据标号的偏移地址,那么EAX 得到的到底是物理地址还是一个相对数据段的偏移地址?如果是偏移地址,后面编译的时候怎么知道EAX中的地址是数据段的偏移地址?

请指教

搜索更多相关主题的帖子: OFFSET 指令 初学 汇编 
2006-10-24 19:48
火奴
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-10-24
收藏
得分:0 
以下是引用hu9jj在2006-10-24 21:47:24的发言:
EAX得到的是偏移地址。编译过程一般要进行多次扫描,第一次扫描时要计算各条指令所需的字节数并计算标号所代表的地址,后面的编译就将aa标号所处的地址数值替换OFFSET aa。

谢谢楼上的回答,但经过计算以后aa所代表的地址应该是物理地址,那么在用aa所处的地址数值替换了 OFFSET aa以后,EAX是如何得到偏移地址的值呢?还是在第一遍扫描的时候就先把偏移地址移交给EAX?

2006-10-24 23:54
火奴
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-10-24
收藏
得分:0 
aa 是数据的标号,应该存在数据段里面,基址在CS中的话怎么可能得到正确的 aa里面的值呢?
2006-10-25 20:35
火奴
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-10-24
收藏
得分:0 

好 谢谢

2006-10-29 18:47
快速回复:[求助]初学汇编 请教关于OFFSET指令的问题
数据加载中...
 
   



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

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