* 「ぐいぐい01」の32bitレジスタ番号表
 -(by [[K]], 2009.01.13)
 *** (1)
 -0x00〜0x07 : reg32
 -0x08    : 使用禁止
 -0x09〜0x1f : [ESP+4]〜
 -0x20〜0x2f : [ESI+48]〜[ESI+108]
 -!0x34 : void
 -!0x35 : little-imm32
 -!0x38〜!0x3f : reg8
 *** (2) いきなり脱線
 -47 01 70 a b が来たらtek圧縮 a=0がUPX風でa=1がtek5。bは展開後のサイズ。0でも中身は3バイト。だってそれ以下だと圧縮する意味が分からない。これが困ることはない。なんとなれば、無駄なデータをうしろに3バイト足してから圧縮すれば済む。
 -47 01 70 a b が来たらtek圧縮 a=0がUPX風でa=1がtek5。bは展開後のサイズ。0でも中身は4バイト。だってそれ以下だと圧縮する意味が分からない。これが困ることはない。なんとなれば、無駄なデータをうしろに3バイト足してから圧縮すれば済む。
 --展開後のサイズが511バイトまでなら圧縮ヘッダは5バイトで済む。ノーマルだと18バイト+2バイト食っている。つまり15バイトの得。
 --32KB以下でも15バイトの得。これでいいんじゃないか?
 --tek5圧縮のオーバーヘッドは、最小で3バイト。・・・かな?たぶんcalc1やmakefontは効く。カレンダーも372から357へ。・・・calc1もmakefontも効かなかった。
 --ちなみにこれだと、cpyやhexdumpなどでは展開できない。
 --47 01 71 は汎用データ型。・・・採用未定。
 -サイズ記述について。圧縮データはバイトアラインなのでは?そうだとすると、サイズ記述は工夫したほうがいいかも。変形gh8?
 -いやaのあとにフラグをつけることにしよう。
 --0なら何もしない。
 --1なら次の1バイトは0x15。2なら0x19。3なら0x21。他は未だ未定。
 --これだとカレンダーは356かな。いや358だった。
 
 *こめんと欄
 #comment

リロード   新規 編集 差分 添付   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS