[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 2926] Re: 結局NASK?



  こんにちは、川合です。


I.Tak. さんは 2002/01/13 13:44:30 の「[OSASK 2925] Re: 結局NASK?
」で書きました:

> そういえばASKAの英語版はどうなったんでしょうか?
>RisaPapaさんが_あの_ソースをどう料理したのかかなり興味があります。
>(ASKAのエラーメッセージは書き換えを拒否しているかのようでした)

  ベータ版なら、僕が持っています(ソースもあります)。でもこれを
公開していいのかどうかはまだ確認していません。

  実は1ヶ月ほど前からRisaPapaさんはOSASK以外のことで非常にお忙し
く、お手伝いをお願いできない状態です。どうしましょうか?

>>  世界中のNASMのユーザーに喜ばれるような、徹底した自動最適化をし
>>たいと思います(僕以外の誰もそんなことは望んでいないのかもしれま
>>せんが・・・笑)。そしてついでに世界最小のIA-32アセンブラも目指
>>します(笑)。
> NASMを改造して世界中のユーザをということは、16bit生DOSから64bitの
>UNIXまで含まれるわけですね。頑張ってくださいね。

  おっと、そいつは誤解です(笑)。

  まず、僕はNASMを改造しません。0から作ります。NASMのソースを引
きずっているとアセンブラ本体50KBというのは無理っぽいですから。

  またNASKはNASMに対して下位互換です。文法だけをもらってきた別物
という感じです。そして32bitを前提にANSIレベルのC言語で、標準入力
関数だけで書きます。ですから、移植は容易でしょう。16bitDOS版はつ
らいかもしれません。それは移植する人にお任せします。

  NASMにあってNASKにないものはマクロです。マクロについては、NASM
のプリプロセッサ機能を使って、出力されたソースをNASKにかけるとい
う使い方を想定しています。だからincludeさえできません。・・・と
いうかそもそもASKAのバックエンドとして任務をまっとうできれば、そ
れで十分なので。

  とりあえずはCOFF(obj2bim0が解釈できる程度の単純なもの)とEXE
(DOSタイプ)とバイナリー出力のみのサポートです。

  こうやってある程度機能を絞っていかないと、1ヶ月という作成予定
期間をはみ出してしまいますから。

  とりあえず僕は整数命令のみサポートしておいて、後は改造する皆さ
んに任せます。もちろん川合堂ライセンス-01が適用されるため、好き
なように改造して好きなところで公開してください。プリプロセッサを
内蔵させて、出力できるタイプを増やして・・・とやっていって本家NA
SMコンパチブルにしてもいいでしょうし、文法解釈部を交換してMASM準
拠にしてもいいでしょうし(文法解釈部をASKAにすればダイレクトASKA
も作れますが)、それはお任せします。僕は一通りのデバッグが済んだ
ら、NASKはほったらかしにします。

  NASKは文法解釈部とラベル値計算部とに別れていて、文法解釈部では
ラベルの値を評価することなく、そのまま式を出力すればいいことにな
っています。ラベル値計算部は、その式を評価して定数に変換します。
式の値によって出力するコードを自動選択する能力も持ちます(この機
能のおかげで、最適化ができるわけです)。

  ラベルがすべて定数値に変換されたあと、文法解釈部がリストを表示
します。

  ラベル値計算部は、IA-32に依存しない仕様で、どのようなアセンブ
ラにも利用可能なものです。両方のendianに対応です。これで6809のク
ロスアセンブラを作れば、不要なロングブランチのないバイナリーが得
られます(笑)。


  それでは。

--
    川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/