回答編集履歴
1
PIC の意味を追加
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
|
+
|