アセンブリ コードがメモリ空間にどのようにレイアウトされるかを理解しようとしています。数行の命令と .data セクションを含む単純なアセンブリ コードを作成しました。GDB で調べたところ、objdump -section-header コマンドでは確認できなかったデータ セクション以外の内容が表示されました。以下は gdb からの出力です。
(gdb) x/100x &data
0x804909c <data>: 0x03020100 0x07060504 0x0b0a0908 0x050e0d0c
0x80490ac <other>: 0x00000000 0x6d79732e 0x00626174 0x7274732e
0x80490bc: 0x00626174 0x7368732e 0x61747274 0x742e0062
0x80490cc: 0x00747865 0x7461642e 0x00000061 0x00000000
0x80490dc: 0x00000000 0x00000000 0x00000000 0x00000000
0x80490ec: 0x00000000 0x00000000 0x00000000 0x00000000
0x80490fc: 0x00000000 0x0000001b 0x00000001 0x00000006
0x804910c: 0x08048074 0x00000074 0x00000027 0x00000000
0x804911c: 0x00000000 0x00000004 0x00000000 0x00000021
.data セクションの最後は 0x80490af ですが、ご覧のとおり、.data セクションを超えてさらに多くのものがあります。彼らは正確には何ですか?それらはただのがらくたですか、それとも何か他のものですか?.data セクションを超えてメモリにアクセスしようとするとどうなりますか?