汇编程序会经过二次遍历,有些符号引用会被标记为可重定位,在编译好后他们的偏移值是其在代码内部的偏移值,即LC计数器的值,当载入内存运行时,由于起始加载地址会不确定,所以会在加载后把代码段所在的内存起始地址加到符号引用原有的偏移上,这就叫重定位.比如一个jmp abc会跳到代码段内部偏移10的地方,但是代码被加载到内存偏移1000,所以实际上那个abc标号偏移10的地方在实际的内存里面偏移是1010,所以再继续往abc(偏移10)跳会出问题,故而给abc的偏移10加上加载处起始地址1000,得出1