Advertisement

ARM重定位与链接脚本

阅读量:

一、重定位

静态重定位:静态重定位是在程序运行前完成一次内存布局规划,并基于装配模块确定对应的内存区域起始位置

位置,直接修改装配模块的有关使用地址的指令。

2、动态重定位:动态重定位主要体现在运行时阶段的地址重新计算过程。而不是在程序启动前就完成的位置调整工作。

准确地说,在访问内存单元之前进行地址转换。动态重定位是将装配模块直接注入到内存中而不做任何修改。

存,但是它需要硬件-定位寄存器的指出。

3、为什么需要重定位?

此代码中我们可将其归为两类:无定位编码和有定位编码。无定位编码无论在何处运行都不会受到影响,而有定位编码则会受到具体位置的影响

关码必须位于固定位置才能正确运行。这个固定位置即为链接地址,在我们的代码执行过程中所使用的操作符位置被称为OP。

操作受操作位置的影响下规定了链接地址与运行地址必须一致。但因某种原因(例如:我们在用裸机时),我的配置可能不同。

全部评论 (0)

还没有任何评论哟~