こんばんは、川合です。
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/