「ぐいぐい01」の32bitレジスタ番号表
(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バイト足してから圧縮すれば済む。
- 展開後のサイズが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だった。
こめんと欄