程序的重定位

    我们在指令中使用了绝对内存地址(物理地址),这样的程序是无法重定位的。为了让你写的程序在卖给别人之后,可以在内存中的任何地方正确执行,就只能在编写程序的时候使用相对地址或者逻辑地址了,而不能使用真实的物理地址。当程序加载时,这些相对地址还要根据程序实际被加载的位置重新计算。在任何时候,程序的重定位都是非常棘手的事情。当然,也有好几种解决的办法。在 8086处理器上,这个问题特别容易解决,因为该处理器在访问内存时使用了分段机制,我们可以借助该机制。执行这个程序时,代码段和数据段在内存中的位置发生了变化,只要把它们的段地址分别传送到 CS 和 DS,它也能够正确执行。

——《x86汇编:从实模式到保护模式》2.5.2

你可能感兴趣的:(计算机体系结构)