らんだむな記憶

blogというものを体験してみようか!的なー

みかん日記 (9)

第 4 章 c。またまた写経して実行するだけ。

f:id:derwind:20210523003839p:plain:w300

day04c(〜p.107)は終わり。

*****

第 4 章 d。

.bss セクションとは、通常、初期値なしのグローバル変数が配置されるセクションです。

あまりセクション類は普段意識できていないので、少し覚えておきたい。

objdump  -CxS -M intel --prefix-addresses main.o | grep .bss

してみると、

0000000000000010 g     O .bss 0000000000000008 pixel_writer
0000000000000000 g     O .bss  0000000000000010 pixel_writer_buf

となっていて、なるほど確かに初期値のないグローバル変数が置かれているようだ。

-PixelWriter* pixel_writer;
+PixelWriter* pixel_writer = nullptr;

としても状況は変わらないが、

-PixelWriter* pixel_writer;
+PixelWriter* pixel_writer = reinterpret_cast<PixelWriter*>(0x1000);

とすると、pixel_writer は .bss セクションからは消える。代わりに

0000000000000000 g     O .data    0000000000000008 pixel_writer

ということで、.data セクションに移動していることが分かる。なるほど。

他の内容は読んでみて、そっかそっかと理解したことにして終える・・・。day04d(〜p.116)は終わり。