回答編集履歴

1

PIC の意味を追加

2016/09/16 01:57

投稿

mit0223
mit0223

スコア3401

test CHANGED
@@ -17,3 +17,13 @@
17
17
 
18
18
 
19
19
  .plt は .got の中を参照して動きますが、そのときに .plt がメモリ上に配置される番地から .got がメモリ上に配置される番地へのオフセットは常に一定のオフセットとなるように配置されます。そのオフセットがこの場合、0x200512です。%rip を参照することで、 .plt がメモリ上の何番地に配置されていようが、現在の番地を取得することができます。そこからのオフセットで .got を参照するので、このプログラムは何番地に配置されていても正しく動作するわけです。
20
+
21
+
22
+
23
+ > またPICとはpltのコードの事ですよね??
24
+
25
+
26
+
27
+ 違います。 PIC は Position Independent Code の略で、 PLT のように相対アドレッシングのみで構成されていていて、再配置可能なコードのことを指しています。ダイナミックリンクに使うオブジェクトでは text セグメントもコンパイラが PIC で出力しています。
28
+
29
+