6byte 左にシフトする謎

ええと、FETCH_INST と GOTO_NEXT なマクロを一気に展開しちゃうと以下なカンジ。

     movzwl    (rPC),rINST_FULL
     movzx    rOPCODE,%eax
     sall     $6,%eax
     addl     rIBASE,%eax
     jmp      *%eax

ヤッてる事としては、

  • rPC が指してるアドレスに格納されてるソレを rINST_FULL にコピィ
  • rINST_FULL の先端 1 byteを eax にコピィ
  • eax の中身を 6bit シフト
  • eax + rIBASE して eax に代入
  • eax なアドレスの jmp

という理解で良いのかどうか。

6bit シフトさせて rIBASE と加算、のソレが理解できてません。色々見てるのですが、なかなかとっかかりにさばれておりません。うーん。。

とりあえず

今から那覇のキックオフが始まるので一旦エントリ投入します。