x86 > 64での最適化


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

メモ

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

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

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