SSブログ

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のフォーマットを理解してからだな。


タグ:PDP-11 objdump a.out
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。