「ぐいぐい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でも中身は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だった。

こめんと欄


コメントお名前NameLink

リロード   新規 編集 差分 添付   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
Last-modified: 2009-01-14 (水) 13:10:47 (4914d)