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

[OSASK 3027] bmpv04.



  こんにちは、川合です。Subjectを変えました。また、関連するメー
ルをまとめています。


rakkyo さんは 2002/01/22 22:50:01 の「[OSASK 3022] Re: ASKA(ASM)
  での呼び出し方について」で書きました:

>さっそくなのですが、ASKAを使っていて、一つ気づいた事が...
>http://homepage2.nifty.com/rakkyo-taro/bmpv04.lst
>http://homepage2.nifty.com/rakkyo-taro/bmpv04.ask

  うまくダウンロードできませんでした。URLは合っていますか?

  ええと、実はちょっと気になっていたのですが、アップロードする際
には、アーカイブにまとめてもらえないでしょうか?・・・アーカイブ
なら複数のファイルを1度に持ってくることもできますし、保存も楽で
す。サイズも小さくなって、回線の細い僕は助かるんですが・・・。

  その後、

    http://homepage2.nifty.com/rakkyo-taro/secret/bmpv04.lst

などでアクセスできると分かりました。

>で、lstは286行、askは435行近くを見てもらいたいのですが、なんだかASKAの出
>力がおかしくないでしょうか??
>まだ、あんまり命令を知らないのですが、レジスタの値もなんだかおかしいので、
>違うような気も...
>間違っていたらすいませんm(_ _)m

  実はASKAは間違ってはいなくて、問題はらっきょさんのソースの方に
あるのでした。

  おそらく問題にしているのは、

    DX = 7 - AX;

という計算でしょう。これはできません。もちろん、EDX = 7 - EAX;も
できません(EDX = 7 + EAX;ならできるんですが)。

  そういうことがしたいのでしたら、たとえば、

    EDX = 7;
    EDX -= EAX;

などとするべきです。

  ついでにこれはおせっかいなのですが、

    SHR(AL, CL);

これは、CLを使う理由はなんなのでしょうか?シフト量を将来自由に変
更しようということなんでしょうか?・・・そうではなくて、シフト量
に定数が指定できるのを知らなかったというだけでしたら、是非こちら
をお使いください。CLが他の用途に使えるようになるので、楽になるで
しょう。

    SHR(AL, 4);     もしくは、    AL >>= 4;


rakkyo さんは 2002/01/23 01:48:30 の「[OSASK 3024] Re: ASKA(ASM)
 での呼び出し方について」で書きました:

>> >struct LIB_GRAPHBOX {
>> >//	int reserve[64 / 4];
>> >	int reserve[16];
>> >};
>> int reserve[64]; と書いてください。
>これってなんの意味があるのでしょうか?
>いまいちよく分かっていません(ぉぃ

  struct LIB_GRAPHBOXは意味ありません。使っていませんからね。消
しちゃいましょう。

>> >// 静的変数領域の初期値設定
>> >// ・・・決まり文句だと思ってください。深く考えなくていいです。
>>  ベタデータをコピーしてますね。tek0を使えるといいんですが……
>ここなんですが、コピーしないといけないんでしょうか??

  はい、コピーしなくちゃいけません。

  コピーしないやや高度なテクニックもあるにはあるのですが、それは
かえって話がややこしくなります。

  なんでコピーしなきゃいけないのかというと、とりあえずこう考えて
ください。

・記述したデーターはbmpv04.binの中に存在するが、実行に際して、こ
  のファイルはリードオンリーにされる。

・リードオンリーのデーターは全く書き換えられないので、書き換え可
  能なstack+mallocファイル(合計180KB)の中にコピーして、こっち
  を使う。

  つまり、一切書き換える必要がない場合を除いて、コピーは必須なの
です。

>後、tek0と言う言葉は前からちょくちょく聞いてはいたのですが、どうすれば
>tek0に対応できるのかが、いまいちよく分からず使えませんでした。

  tek0の利用はもちろん考えましょう。これを使うと使わないとではか
なり違うので。しかし、これはプログラムがちゃんと走るようになって
からです。それより前にtek0を使おうとすると、多分悩みが増えます。


  それでは。

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