打印

访问数据、调用函数的指令使用绝对地址、相对地址

[复制链接]
4110|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cheng105|  楼主 | 2012-8-30 09:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
airwill| | 2012-8-30 12:44 | 只看该作者
访问数据、调用函数的指令使用绝对地址、相对地址, 这是指令系统和编译器确定的.
当然编程也是基本能控制的.
比如使用变量或数组,就会导致编译器生成不同的指令.

使用特权

评论回复
板凳
阿南| | 2012-8-30 14:13 | 只看该作者
楼主,如果使用的是ARM处理器芯片,可以看看《ARM 体系结构与编程》一书。

使用特权

评论回复
地板
cheng105|  楼主 | 2012-8-30 16:07 | 只看该作者
非常感谢两位的回复,《ARM 体系结构与编程》是一本好书,
section合并、符号解析、重定位这些阶段,大的流程知道,但是说到一些细节的东西,就有些模棱两可了;
编译器生成的目标文件中指令使用的是相对地址还是绝对地址,应该是编译阶段就已经确定的,在目标文件中的重定位section中有相对重定位项和绝对重定位项;
即使是undef的外部符号,也在重定位项 type域说明了;

使用特权

评论回复
5
jinyuewei| | 2012-8-30 20:07 | 只看该作者
个人认为《ARM处理器裸机开发实战-机制而非策略》这本书比较适合初学者,里面也讲到了相对地址、绝对地址等东西,适合入门。比起《arm体系结构与编程》通俗多了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

93

帖子

0

粉丝