[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]
[OSASK 2651] Re: About NASM.
- Subject: [OSASK 2651] Re: About NASM.
- From: Hidemi KAWAI <kawai !Atmark! imasy.org>
- Date: Sun, 09 Dec 2001 13:05:13 -0000
こんばんは、川合です。
I.Tak. さんは 2001/12/09 19:59:03 の「[OSASK 2645] Re: About NAS
M.」で書きました:
> なんにせよaxしか関係ないのに、mov ds,eax にしないと32ビット命令
>になりません。NASMはセグメントレジスタ関係を「32ビットオペランドを
>扱うなら32ビット、そうでないなら16ビット」と解釈しているようです
多分、特別扱いを嫌ったのでしょうね。
>(pushの場合、暗黙のオペランドとして bits で指定したサイズの[esp]が
>解釈されるようです)。ああそういえば mov eax,cs よりも push cs の
>方が一バイト小さくなるようですから、こっちにしません?
それは用途によりけりです。たとえば、CSの値をDSに入れる時は、確
かにPUSHの方が良さそうです。これから少しずつ直すことにします(DS
= CS + 8;の部分もあるので、そこはやっぱりEAX経由にします)。
> ところで、VCやMASMが吐くオブジェクトってCOFFなんですか?
>NASMのマニュアルには「Win32オブジェクトはマイクロソフト社がCOFFと
>互換性があると主張するフォーマットだ」とか「COFFの一般的な拡張子は
>oだ」と書いてありましたが(個人的にはMS社が自社以外のフォーマットを
>使うとは思えません)。
とりあえず、COFFっぽいです。厳密にはCOFFではないのかもしれませ
んが、僕はCOFFだと信じてobj2bimを作り、とりあえずlcc-win32やMASM
が出力したファイルをすんなり扱えました。多分、勝手な独自拡張はし
ているでしょう。
> 出力フォーマットの問題で(UNIXはFLATですから)全く関係ないんですが、
>gasはジャンプ関係をちゃんと小さく出力してくれます。
うーん、さすがです。っていうか、ちゃんとする方が僕には当たり前
に思えるのですが・・・。なんでNASMはこんなにユーザーが多いのにこ
の問題を放置してきたんでしょう。不思議です。
ついでにもう一つ。
I.Tak. さんは 2001/12/09 20:32:14 の「[OSASK 2647] Re: About NAS
M.」で書きました:
>> これで、僕の不満を共有していただけるでしょうか?(笑)。
> はい。NASMは混乱しているようですね。
ご理解いただき、ありがとうございます(笑)。
> 思いつきですが、ストリームエディタで "L????:" という単語に反応して
>行に印をつけ、それをNASMでアセンブルして、リストファイルを参考に川合
>さんの出番、というのはどうでしょう。……だめかな。
>私はアセンブリ以外はパス(^^;;;
アイデアとしては悪くないですね。
僕が思ったのは、ASKAがダイレクトにこのコードを出せるようになっ
たらいいなあと思いました。・・・まあ、無理でしょう。言ってみたか
っただけです(笑)。
> NASM(ラベル問題あり)を改造してそういうアセンブラを作るのと、
>gas(文法が異色、オブジェクト問題あり)を改造して理想のアセンブラを
>作るのとはどちらが難しいか……
NASMはマクロ処理がすばらしいので、NASMベースの方がいいかなとは
思います。でも結局はASKAの下請けができればそれで十分なわけで、だ
ったらセグメント処理とかを全部無視した簡易バージョンで事足ります
。
ラベル計算を別ルーチンにまかせられるということは、ほぼ1パスで
処理できてしまうということです。これは面白いと思うんですが・・・
。こういうのが好きな人っていないかなあ。1ヶ月くらいがんばったら
、僕一人でもできるかな。できそうだな。でも今やったらみんなに怒ら
れちゃうだろうなあ・・・。まずはファイルライトで、その後にPC9801
への移植で、それから1ヶ月くらい、これをやるっていうのはどうかな
あ・・・。
(いつのまにか独り言モードになってしまいました。すみません。)
それでは。
--
川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/