PDP-11のobjdumpが変だな
うーむ、pdp11-aout-objdump の出力情報がどうもおかしいな。
リンカスクリプトのアドレス設定に沿って、
.text、.dataのアドレスはそれぞれは変わっているっぽいが、objdumpの出力が変わらない。
.dataのVMA、LMAが絶対0x400固定なんだよな。なんでだろう。
でも、逆アセンブラのコードを見ると、dataのアクセスのアドレスは
リンカスクリプトで定義した場所に行っているしな。objdumpのバグかな・・。
一方で、Jordiさんのツールbin2loadは、
a.outのセクション情報を上から読んで、simhのバイナリ形式に変換しているが、
開始アドレスは各セクションのサイズ+勝手に0100のアライメントを設定している。
a.outの情報から各セクションのアドレスを取得してる訳ではない。
なので、bin2loadはリンカスクリプトでも同じアライメント指定をしてあげないといかん。
a.outはどっちにしても.text、.data、.bssと配置の順番が決まっているっぽいので。
リンカスクリプトの書き方は決まってしまうのかも知れん。
そもそもa.outのフォーマットは、ちょいだけ調べてみたが、まだ良く分からないな。
Jordiさんのbin2loadを使えば、simhにバイナリロードして実行する、ところではまあ不自由はしないか。
トライしたかったこと:
- bin2loadなしでもPDP-11の実行ファイルがつくれないか
objcopy -O binaryで、そのまま実行可能なイメージができないか。
sim> att rk0 <実行ファイル>
sim> boot rk0
てな感じで実行できると楽。
まあ、きちんとa.outのフォーマットを理解してからだな。
2014-09-07 22:49
nice!(0)
コメント(0)
トラックバック(0)
コメント 0