teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

雑記追記

2016/09/18 00:24

投稿

aglkjggg
aglkjggg

スコア769

answer CHANGED
@@ -20,6 +20,15 @@
20
20
  0x7ffffffde000: スタック領域
21
21
  ```
22
22
 
23
+ ### 2016/09/18 09:23 AM (雑記追記)
24
+ 私もこの質問を見てなぜ0x00400000なのか気になりましたが、
25
+ HogeAnimalLover様が書かれている通り「作った人がそう決めたから」という筋が大いにありそうですね。
26
+ 0x003FFFFFまではシステム領域として確保しておけば足りるだろうなどと考えたのかと推測します。
27
+
28
+ 似た話でWake-on-LanのマジックパケットのMACアドレスを何故16回繰り返すのかというのもあります。
29
+ 「16回でなく、15回でも、17回でも、32回でもよかったんじゃないか…」といった話です。
30
+ おそらく作者が「16回MACアドレスを繰り返せば他のパケットと偶然一致することはないだろう」などと考え、仕様を制定したのかと推測します。
31
+
23
32
  ### 参考文献
24
33
  ELF実行ファイルのメモリ配置はどのように決まるのか - ももいろテクノロジー
25
34
  [http://inaz2.hatenablog.com/entry/2014/07/27/205913](http://inaz2.hatenablog.com/entry/2014/07/27/205913)

2

参考文献追加

2016/09/18 00:24

投稿

aglkjggg
aglkjggg

スコア769

answer CHANGED
@@ -1,7 +1,18 @@
1
1
  なぜ0x00400000にしたかと言うのは具体的に答えられませんが、
2
2
  Linux, Unix系やWindowsに限らずParOSと呼ばれる独自OSでも0x00400000が実行ファイルのスタートアドレスとして指定されています。
3
3
 
4
+ コンパイラによっては変更することができるようです。
4
5
  ```
6
+ /BASE オプションの利用
7
+ プログラムのベース・アドレスを設定し,
8
+ 実行形式ファイルまたは DLL の基本場所を置換します
9
+ (実行形式ファイルでは 0x400000,DLL では 0x10000000)。
10
+ https://jp.xlsoft.com/documents/intel/cvf/vf-html/pg/pg04_02_04.htm
11
+ ```
12
+
13
+ 「memory map 0x00400000」などで検索すると色々ヒットします。
14
+
15
+ ```
5
16
  0x400000: 実行ファイルの実行可能領域
6
17
  0x600000: 実行ファイルの実行不可領域
7
18
  0x602000: ヒープ領域

1

参考文献追加

2016/09/17 11:03

投稿

aglkjggg
aglkjggg

スコア769

answer CHANGED
@@ -9,8 +9,12 @@
9
9
  0x7ffffffde000: スタック領域
10
10
  ```
11
11
 
12
+ ### 参考文献
12
13
  ELF実行ファイルのメモリ配置はどのように決まるのか - ももいろテクノロジー
13
14
  [http://inaz2.hatenablog.com/entry/2014/07/27/205913](http://inaz2.hatenablog.com/entry/2014/07/27/205913)
14
15
 
15
16
  ParOS - 15ページ目
16
- [https://www.toppers.jp/docs/tech/park/PartitionOS_SafetyConcept.pdf](https://www.toppers.jp/docs/tech/park/PartitionOS_SafetyConcept.pdf)
17
+ [https://www.toppers.jp/docs/tech/park/PartitionOS_SafetyConcept.pdf](https://www.toppers.jp/docs/tech/park/PartitionOS_SafetyConcept.pdf)
18
+
19
+ windowsにおいて、デバッグソフトを用いて実行中のプロセスをアタッチし... - Yahoo!知恵袋
20
+ [http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10131267615](http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10131267615)