こんばんは、川合です。 I.Tak. さんは 2002/07/05 17:32:50 の「[OSASK 3959] Re: nask00f. 」で書きました: > NASK00fを試してみました。gcc 2.95.2 でコンパイルしたら、最小で >43.676KB となりました。ちなみに Linux+K6 という(学校の)環境です。 > > まだそんなに試していませんが、怪しい挙動をみつけました。 ご報告ありがとうございます。 >data: dd 4, 0x1000 > dd 0x18, 1, 0,0,0 > dd 0 >.size: equ $ - data > >というソースで skip_expr:0x0e というエラーメッセージが出ます。 >これが $ を使わなくても(.size: equ data_end - data とか) >出ました。 ええと、これは基本的におっしゃる通りですし、言われてみればその とおりでした。僕のミスです(次のバージョンで直します)。しかし、 data: dd 4, 0x1000 dd 0x18, 1, 0,0,0 dd 0 .end: .size: equ .end - data は通るはずですし、実際うちでは通りました。$、..$、$$に固有のバグ のはずです。 > 長いラベル名を書くとセグメント例外を起こします。 >aaaaaaa: ; OK >.bbbbbbb: ; NG >aaaaaaaa: ; NG うちでは再現できませんでした。 まさかgccがバグっているなんてことはないでしょうから、ソースが おかしいのかなあ・・・。ポインタが狂っているのかなあ。あとでゆっ くり調べてみます。 > ところで、resb シリーズは[section]が使えないと意味がないの >ですが、どうしたらいいんでしょう?(^^;;; 仕方なくデフォルト >セクションで使うと db シリーズと同じになってしまいますし。 >ちなみにNASMも同じ結果が(警告は出ますが)得られます。 おっしゃる通りです。とりあえず、[section]が使えるようになるま でRESB系は役立たずだということにしてください。とりあえずOSASKの ソースをmakeするという用途に限定すれば、[section]なしでも何とか なるので。 > o16 push cs が使えません。ちょっとソースを覗いた感じでは >o16/32,a16/32 が忘れ去られているようです。 すみません、思いっきり忘れていました。もちろん修正しますが、こ れはnask00系では無理でしょう。nask01で対応します。 ・nask00 : OSASKのソースをmakeするのに必要な機能しかない版 ・nask01 : COFFとマクロが使えないことを除いては、フルサポート版 ・nask02 : COFFもサポート版 nask01は、OSASKのPC-9801版、コンソールAPIの後です。nask02は、n ask01のさらに後です。すみません。 それでは。 -- 川合 秀実(KAWAI Hidemi) OSASK計画代表 / システム設計開発担当 E-mail:kawai !Atmark! imasy.org Homepage http://www.imasy.org/~kawai/