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

[OSASK 2627] About NASM.



  こんばんは、川合です。

  NASMへの移行のためにnasmcnv2を作っているのですが(そしてどうや
らそれなりに使えそうなところまで来たのですが)、いろいろやってい
るうちに、NASMの「もうちょっとがんばっておくれよ」(笑)という点
を見付けてしまいました。

BITS 32
g000:
l000
    jc  .l001 ; これを8bitブランチにできない (MASMはできる)
    jne .l000 ; これは8bitブランチになっている 
    MOV DWORD [FS:EBX+4],.l001 ; これはうまくいかない(disp32)
    MOV DWORD [FS:EBX+4],.l000 ; これはうまくいくのに(disp8)
l001
end

  どうやら、後ろの方で定義しているラベルを参照するときの取り扱い
がかなり下手のようです。MASMやNWSAのように、ラベルの定義位置によ
らず一番コンパクトなコードを自動的に選択してほしいのですが・・・
。

  この問題は近い将来のバージョンでクリアされるのでしょうか?NASM
にお詳しいI.Tak.さんやなべちゃんさんや光成さん、何かご存じありま
せんか?

  まあ当面は我慢するしかないのかもしれませんが・・・。それともNW
SAにした方がいいのかなあ・・・。

  それでは。

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