22: 2009-01-01 (木) 21:14:50 |
23: 2009-01-02 (金) 11:30:38 |
| -(12.22追記)昨日neriさんがオプションでCALL(EBP);をコードに追加する機能を付けるべきなんじゃないかと提案しました。この機能を付けるべきかいろいろ試行錯誤した結果、確かに付けたほうがいいと僕は判断しました(.g01の場合は先頭に付ける、COM64plusの場合は末尾に付ける)。またコマンドライン取得APIの仕様が勘違いで間違っていたことに気付いて修正したところ、このAPIが更に使いやすくなりました。これでまたサイズがかなり減っています。なおneriさん自身はまだCALL(EBP);の自動付加オプションをやるという決断にはいたっていないようです(でもきっとあとでやるとは思う)。helloが18バイトで書けるということは、ついにバッチファイルともタイだということです。ちなみにechoの13バイトはバッチファイルで"@echo %1 %2 %3"って書くだけで14バイトなので、すでにバッチファイルにも十分に勝っていると思います。 | | -(12.22追記)昨日neriさんがオプションでCALL(EBP);をコードに追加する機能を付けるべきなんじゃないかと提案しました。この機能を付けるべきかいろいろ試行錯誤した結果、確かに付けたほうがいいと僕は判断しました(.g01の場合は先頭に付ける、COM64plusの場合は末尾に付ける)。またコマンドライン取得APIの仕様が勘違いで間違っていたことに気付いて修正したところ、このAPIが更に使いやすくなりました。これでまたサイズがかなり減っています。なおneriさん自身はまだCALL(EBP);の自動付加オプションをやるという決断にはいたっていないようです(でもきっとあとでやるとは思う)。helloが18バイトで書けるということは、ついにバッチファイルともタイだということです。ちなみにechoの13バイトはバッチファイルで"@echo %1 %2 %3"って書くだけで14バイトなので、すでにバッチファイルにも十分に勝っていると思います。 |
| -(12.24追記)CALL(EBP);をやめてCALL([ESI]);にすることにしました。これだとEBPがあくので好きなことができます。アセンブラ版のバイト数は変わりません。でもC言語版のバイト数は1バイトくらい減らせそうです。・・・さらにCOM64plusのマネをしてレジスタの初期値ロード機能をオプションでつけました。これでcharsが16から14になりました。COM64plusに追いついた! | | -(12.24追記)CALL(EBP);をやめてCALL([ESI]);にすることにしました。これだとEBPがあくので好きなことができます。アセンブラ版のバイト数は変わりません。でもC言語版のバイト数は1バイトくらい減らせそうです。・・・さらにCOM64plusのマネをしてレジスタの初期値ロード機能をオプションでつけました。これでcharsが16から14になりました。COM64plusに追いついた! |
- | -以下にここまでの成果(多分これが限界でもあると思う)を書いておきます。[2009.01.01更新] | + | -以下にここまでの成果(多分これが限界でもあると思う)を書いておきます。[2009.01.02更新] |
| | |hello |hello-c |chars |echo |echo-c |cpy |cpy-c |makefont-c |sjisconv-c| | | | |hello |hello-c |chars |echo |echo-c |cpy |cpy-c |makefont-c |sjisconv-c| |
| |abcdw006用 |RIGHT:27 |RIGHT:86 |RIGHT:33 |RIGHT:? |RIGHT:156 |RIGHT:? |RIGHT:612 |RIGHT:691 |RIGHT:912| | | |abcdw006用 |RIGHT:27 |RIGHT:86 |RIGHT:33 |RIGHT:? |RIGHT:156 |RIGHT:? |RIGHT:612 |RIGHT:691 |RIGHT:912| |
- | |abcdw007用 |RIGHT:''18''|RIGHT:''69''|RIGHT:''14''|RIGHT:13 |RIGHT:71 |RIGHT:? |RIGHT:342 |RIGHT:347 |RIGHT:507| | + | |abcdw007用 |RIGHT:18 |RIGHT:69 |RIGHT:14 |RIGHT:13 |RIGHT:71 |RIGHT:? |RIGHT:342 |RIGHT:347 |RIGHT:507| |
- | |abcdw008用 |RIGHT:''18''|RIGHT:''69''|RIGHT:''14''|RIGHT:''6''|RIGHT:''51''|RIGHT:''45''|RIGHT:''138''|RIGHT:''207''|RIGHT:''395''| | + | |abcdw008用 |RIGHT:18 |RIGHT:69 |RIGHT:14 |RIGHT:''6''|RIGHT:51 |RIGHT:''45''|RIGHT:138 |RIGHT:207 |RIGHT:395| |
- | |COM64plus用|RIGHT:18? |検討中? |RIGHT:''14''|RIGHT:? |RIGHT:? |RIGHT:? |RIGHT:? |RIGHT:? |RIGHT:?| | + | |abcdw009用 |RIGHT:''17''|RIGHT:''68''|RIGHT:''13''|RIGHT:''6''|RIGHT:''50''|RIGHT:''45''|RIGHT:''134''|RIGHT:''203''|RIGHT:''390''| |
| + | |COM64plus用|RIGHT:18? |検討中? |RIGHT:14 |RIGHT:? |RIGHT:? |RIGHT:? |RIGHT:? |RIGHT:? |RIGHT:?| |
| |DOS用 |RIGHT:22 |RIGHT:? |RIGHT:17 |RIGHT:19 |RIGHT:? |RIGHT:? |RIGHT:? |RIGHT:? |RIGHT:?| | | |DOS用 |RIGHT:22 |RIGHT:? |RIGHT:17 |RIGHT:19 |RIGHT:? |RIGHT:? |RIGHT:? |RIGHT:? |RIGHT:?| |
| --(註)echoはargv[0]が見えても見えなくてもよい。 | | --(註)echoはargv[0]が見えても見えなくてもよい。 |
| -(12.27追記)コマンドライン周りの設計中(本仕様級)。以前は数ヶ月かけてもできなかったのに、今だと数日でこんなにはかどる。でも時間がないので比較的ゆっくり。ちなみに昨日のcpyのASKA版は更に見直しで45バイトになり、echoも9バイトになりました。 | | -(12.27追記)コマンドライン周りの設計中(本仕様級)。以前は数ヶ月かけてもできなかったのに、今だと数日でこんなにはかどる。でも時間がないので比較的ゆっくり。ちなみに昨日のcpyのASKA版は更に見直しで45バイトになり、echoも9バイトになりました。 |
| -(12.28追記)abcdw008向けのmakefont-c(現在207バイト)をASKAで書いたら72バイトになった。やっぱりアセンブラは偉大だー。 | | -(12.28追記)abcdw008向けのmakefont-c(現在207バイト)をASKAで書いたら72バイトになった。やっぱりアセンブラは偉大だー。 |
| + | -(01.02追記)アイデアを思いついた!ので現在効果を見積もり中(abcdw009)。とりあえずバイナリ互換はなくなります。 |
| * こめんと欄 | | * こめんと欄 |
| - 現在abcdw007の今週中のリリースを目指してがんばり中。 -- [[K]] &new{2008-12-22 (月) 20:33:28}; | | - 現在abcdw007の今週中のリリースを目指してがんばり中。 -- [[K]] &new{2008-12-22 (月) 20:33:28}; |