当前位置

首页 > 生活妙招 > 静态重定位和动态重定位区别

静态重定位和动态重定位区别

推荐人: 来源: 秒知社 阅读: 8.84K 次

静态重定位和动态重定位区别:

静态重定位和动态重定位区别

1、静态重定位是在目标程序装入内存时,由装入程序对目标程序中的指令和数据的地址进行修改,即把程序的逻辑地址都改成实际的地址。对每个程序来说,这种地址变换只是在装入时一次完成,在程序运行期间不再进行重定位;

2、动态重定位是在程序执行期间每次访问内存之前进行重定位。这种变换是靠硬件地址变换机构实现的。通常采用一个重定位寄存器,其中放有当前正在执行的程序在内存空间中的起始地址,而地址空间中的代码在装入过程中不发生变化。