- 983 名前:デフォルトの名無しさん (ワッチョイ bf3c-agmj) [2017/03/30(木) 02:32:10.51 ID:sHIKu4vn0.net]
- >>14
プログラムのローダーがやるんだろう。 www.ertl.jp/~takayuki/readings/info/no02.html https://ja.wikipedia.org/wiki/%E3%83%AD%E3%83%BC%E3%83%80 アセンブラプログラミングでよく使う .BSSという擬似命令は データセグメントのうち、0で初期化されるものをいう。 https://ja.wikipedia.org/wiki/.bss 非0の場合は実行ファイルに初期化内容が書かれる。 セグメントの情報は実行ファイルに WindowsだったらPE形式(つまりexe)にセクションとして書かれている。 0初期化領域は、実体の記述はなくサイズだけ書いてあることもある。 コンパイラやリンカによって、セクションの名前は変わるけれども コードセグメント → .text データセグメント → .data 読専データ → .rdata リソース → .rsrc こういったセクション名を付けるのが慣習となっている。 .bssというセクション名を持ってるPEファイルも結構あるっぽい。 OSがない原始的なコンピュータの場合は、読み取り専用はROMに置くまでだが、0も非0もRAMに置くことになる。 最近のマイコンなら、実行ファイル内に、0を記述しておくか、非0を記述しておくかということで済むはず。なんらかのハードがメモリ空間へロードさせる。 30年位前だったらROMがメモリ配線に直結されるし、容量的に初期値を持ったRAMということ自体がタブーだろうから、コード内に初期値や0初期化の処理を埋め込むことになる。
|

|