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

[OSASK 889] Re: フォーマットについて.




  こんばんは、Myurikaです。


  Hidemi KAWAI さんにいただいた [OSASK 883] Re: フォーマットについて. へのお返事です。

>>>  いえ、カーネルはDLLです。そう思っていただいても、害はありませ
>>>ん。カーネルもDLLも呼び出しかたは全く同じで、FS:EBXにコマンド列
>>>へのポインタをセットして、ただfar-callするだけです(一般のDLLは
>>>、レジスタの使い方がこれとは違うかもしれませんが)。INTじゃない
>>>です。
>>  えっ、INTじゃないんですか(汗)?
>  INTじゃないです。いったいどうして、INTが標準的なシステムコール
>として定着してしまったのでしょう?・・・って、DOSとBIOSのせいに
>決まっているのですが。

  そういえば、Z80なPC8801のニーモックだと、INTじゃなかったような…、ち、
違ったかな(汗)。

>  INTのメリットは、命令が2バイトで済むことくらいしかありません
>。遅いし、エントリは256個しか作れないし、全タスクで共通にしなけ
>ればいけません。

  まぁ、そのメリットが重要だった頃の設計を引きずっているんでしょうけど。

>>  それはすごいですね。C言語の標準的な構文でも、カーネルコールできちゃうん
>>ですか。
>  C言語の標準的な構文は、far-callをサポートしていないので、カー
>ネルコールできるとはいえません。処理系ごとにfar-callするための拡
>張がなされていますから、それに従えば可能です。

  あ、そうなんですか。無学をさらけ出しましたな(汗)。
  あれだけ関数仕様についてはANSI C標準だ、拡張だ、とかってうるさいHigh C
のマニュアルが、far-callについては何にも書いてなかった(ような気がする)の
で、標準化と思ってました。


  それでは。

| Myurika (尾藤主和) myurika !Atmark! pop06.odn.ne.jp |