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

[OSASK 526] Re: ASKA Ver.1.0β15



  こんにちは、川合です。

  GAPIを書いているうちに、ちょっとした問題を見つけたので、報告し
ておきます。

・(char)キャストがエラーになる

segment CODE(USE32);

default(code == CODE);

void near test()
{
	struct STRUCT {
		int INT;
	};
	int i == ECX;
	STRUCT *p == DS:ESI;
	AL = (char) i; // AL = CL; になってほしい
	DL = (char) p->INT; // MOV DL,BYTE PTR DS:[ESI]になってほしい
	// どちらも、(char)キャストを付けなければうまくいく。

	TEST((char) i, 0x80);
	// この場合、(char)のあるなしで、コンパイル結果が変わる
}

  このプログラムは、コンパイルするとエラーが出ます。ちゃんとキャ
ストが効いて、エラーが出なくなるとうれしいです。上の2つの例では
、単に(char)キャストを書かなければいいだけなんだけど、下のTESTで
は書くと書かないとではコンパイル結果が違うので、サポートしてほし
いです。

  それでは。

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