x86 > 64での最適化

メモ

  • レジスタをゼロクリアする場合
基本的にはxor reg, reg が速い
ただし条件コードを変えたくなければmov reg, 0

  • ゼロとの比較
test reg, regかtest EAX系reg, 0 が速い
ただし比較対象は大抵直前の操作で条件フラグがセットされている.
従って,ゼロとの比較はわざわざ比較命令を発行しないように処理を組み立てるべき.
ただし,movとleaは例外で,条件フラグがセットされないのでtest命令で比較する.

  • アドレッシングモードによる高速計算
lea reg, [reg*3+2+2]
など.1命令で最大4つのオペランドによる加算・乗算が可能なため使いこなすと強力(らしい).
オペランドにはレジスタ・メモリ・即値を指定できる.
演算子は+と*だけ?(調査中)

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2012年02月25日 18:06