0

アセンブリ コードがメモリ空間にどのようにレイアウトされるかを理解しようとしています。数行の命令と .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 セクションを超えてメモリにアクセスしようとするとどうなりますか?

4

1 に答える 1