こんにちは、I.Tak.です。 From: Hidemi KAWAI <kawai !Atmark! imasy.org> Subject: [OSASK 5407] GO, NASK(Re: tolset02). Date: Wed, 27 Nov 2002 19:19:14 +0900 > > obj2bim2はcommonなシンボルを正しく繋げられなかったので、その辺の > >対応が進むのを期待してます。 > 今は、obj2bim3が主バージョンですが、それでもcommonシンボルは対 > 応していません。というか、commonシンボルって何ですか?どういう目 > 的につかうのか教えてください。なるほど有用だということになれば、 > サポートします。 nasmの説明によれば、 common intvar 4 これと global intvar section .bss intvar resd 1 これとはほぼ同じ結果が得られます。でもリンクするときに他のオブジェクト に同じcommon変数があるとマージされ、intvarへの参照は同じメモリを指す ようになります。 ……ということです。mtlのrewind_codeとかそういう共有されるものは どこで作っても一つにまとめよう、という事ですね。 > > コマンドラインからの制御が全く効かない(オプションはファイルに > >書き込む)というのは、単体で使うには不便だと思います。今後coffも > >吐けるようになると特にそうです。 > NASMのオプションにはいろいろありますが、たとえば、-fオプション > はすごく駄目なしようだと僕は思います。どうして駄目なのかというと > 、BIN用に書いたソースをCOFFで出力するとか、その逆とか、そういう > ケースは原則として考えられないからです。ソースに強く依存すること > をコマンドラインで制御できても全然嬉しくありません。むしろ面倒な > だけです。 マクロで制御できるので、そうではないと思います。マクロを使わなく ても、全く同じソースをcoffにもelfにもwin32にも出力したいということ は(汎用なルーチンでは)よくあります。 また、川合さんの好きな関数一個だけオブジェクトをつくる場合、リンク を飛ばすためにバイナリモードで出力して、incbinでつなげるということも (私は)やります。mtltのサンプルでは実際にそういうことをしています。 リンカはなんとなく面倒なので。 > NASKの場合、INSTRSETやOPTIONやOPTIMIZEがオプション指定ではなく > ソースに書き込むことになっていますが、これらをコマンドラインに記 > 述できるメリットはどういう状況なのでしょうか?僕の想像力では、思 > い付きません。むしろ間違えて指定して式の値が間違って解釈されたり > 不本意なコードが生成させてしまうほうがよっぽど危険だと思うんです > が・・・。 オプティマイズは-Oオプションかなあ……まあ「こんなにデキるんだ」って さっと自慢できるくらいですか。その辺はファイル指定でよさそうですが。 > 別に乗り換えてくれなくていいと思いますが。僕は別にGOで世界を塗 > り替えたいわけじゃないんですから。使いたい人だけが使ってくれれば > いいんですよ。 そうでした。うっかり忘れてました(^^;;; > SJISに関してですが、確かに痛いと思います。特にwin32下のコンパ > イラとしては。そこで、プリプリプロセッサを作りたいなあって思っ > ています。これはすさまじく簡単なフィルターで、「ひらがな」→「\x > 82\xd0\x82\xe7\x82\xaa\x82\xc8」に変換するだけのものです。これで これは気づきませんでした。こういうのが一つあるとかなり便利ですね。 I.Tak. <g240845 !Atmark! mail.ecc.u-tokyo.ac.jp> http://user.ecc.u-tokyo.ac.jp/~g240845/