[OSASK 3960] Re: nask00f.

  こんばんは、川合です。


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/


ML番号でジャンプ
ML単語検索