こんばんは、川合です。なんだかずっと書いていないので書きます。
今やっているのは、NASKのバージョンアップです。なぜバージョンア
ップが必要なのかというと、今のNASK(nask00j)はいくつかの問題を
抱えているからです。
1.NASKはGOだけで生成できない。
2.NASKはCOFFを生成できない(込み入ったテクニックを使えばできる
が、それはいい方法とはいえない)。
1.については別にGOで生成することにこだわる必要はないのですが
まあせっかくなので。ついでに機種依存もさらに減って、OSASKに移植
しやすくなります。
2.について。NASKでCOFFを出力できるようにする最大の意図は、NA
SKにas.exeの代用をさせるためです。as.exeはCOFFを出力できますが、
NASKはできないわけです。COFFを出力できないと、ライブラリもリンク
もできないので、それはとてもまずいわけです。
次に現状を説明します。長いこと沈黙していただけのことはあり、NA
SKの改良は進んでいます。1.は既に完了しています。2.は次のよう
に細かく段階を分けて作業をしています。
2−1.[SECTION]対応
2−2.COFFフォーマット対応
2−3.GLOBAL対応
2−4.EXTERN対応
3−1.ALIGN対応(やらないかもしれません)
3−2.ABSOLUTE対応(たぶん時間がないので後回しです)
今、2−1に着手していて、7割は完了しています。ちゃんとセクショ
ン文を理解して正しいバイナリを出力します。ただリストがまだ出ま
せん(バイナリと同じ順序に化けてしまう)。
今後の見通しです。2−2と2−3に対応したら、一度ベータリリ
ースします。nask00mという名前になるでしょう。これは早ければ水曜
日に、遅くとも今週末にリリースします。そして2−4を実装してテ
ストして、クリスマスごろにはリリースしたいです。その後gas2nask
を作って、年末にはas.exe無しでGOやOSASKやNASKを生成できるという
状態にしたいです。
3−1は本家のNASMにはない機能で、そのセクション内で使われて
いるALIGN文をもとにセクションのアライン属性を自動的に決める機
能です。これができるとALIGN文のためにややこしいマクロを書かな
くてよくなりますし、自動で最適なアライン属性がセットされるため
に、obj2bimで-fixobjしなくてよくなります。
年始に入って1週間ほどでこれら全てのツールがOSASK上で動くはず
です。そういう計画になっています。
ということで、今はわくわくしていてください(笑)。
それでは。
--
川合 秀実(KAWAI Hidemi)
OSASK計画代表 / システム設計開発担当
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/