我们经常用到“存储地址和连接地址不同”(术语上称为加载时域和运行时域)的情况:
大多机器上电时是从地址0开始运行的,但是从地址0运行程序在性能方面总有很多限制,
所以一般在开始的时候,使用与位置无关的指令将程序本身复制到它的连接地址处,
然后使用向pc寄存器赋值的方法跳到连接地址开始的内存上去执行剩下的代码。
http://zqwt.012.blog.163.com/blog/static/120446842010113002939616/
我们经常用到“存储地址和连接地址不同”(术语上称为加载时域和运行时域)的情况:
大多机器上电时是从地址0开始运行的,但是从地址0运行程序在性能方面总有很多限制,
所以一般在开始的时候,使用与位置无关的指令将程序本身复制到它的连接地址处,
然后使用向pc寄存器赋值的方法跳到连接地址开始的内存上去执行剩下的代码。
http://zqwt.012.blog.163.com/blog/static/120446842010113002939616/