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

[OSASK 1371] Re: for more compact(Re: s_world.bin).



小柳です。

Hidemi KAWAI wrote:
> 
>   こんばんは、川合です。
> 

>   さて、せっかく小柳さんがASKAにチャレンジして成功して下さったの
> で、これを記念して少しだけASKAのコツみたいなものを書きます。テー
> マは「もっとコンパクトにしよう!」です(笑)。
> 

(中略)

>   ついでに、もっと小さくしてみましょう。
> 
>     int *putnotename_string == DS:EDX;
>     EAX = 32; // 5バイト
> //  (offset) putnotename_string = work->lib_putnotename.string; // 5バイト
>     LEA((offset) putnotename_string, (int) [work->lib_putnotename.string]);
>     putnotename_string[ 0] = EAX; // 2バイト
>     putnotename_string[ 4] = EAX; // 3バイト
>     putnotename_string[ 8] = EAX; // 3バイト
>     putnotename_string[12] = EAX; // 3バイト
> 
>   はい、これなら21バイトです。これで、元の40バイトからみれば、19
> バイトだけコンパクトになりました。

御教授ありがとうございます。
この処理が2か所あったので関数化を加えて修正して
1509パイトから1461パイトに減らすことができました。
http://homepage1.nifty.com/dreaming/osask/sworld.lzh
を更新して楽譜を入れました。

-- 
小柳 雅明(Koyanagi.Masaaki !Atmark! nifty.ne.jp)
「人の足を止めるのは"絶望"ではなく"諦観"
  人の足を進めるのは"希望"ではなく"意志"」
                  -- ARMS