0

式を解決してレジスタに入れ、インラインアセンブリで使用し、再度使用してどこかに置く方法は?

例えば:

EAX=a[i]; //Any expression that valid in C++
__asm xor eax,0xFFFF //Do something with this
b[i]=EAX; //And then put it in some variable.

ちなみに理由は性能です。

4

1 に答える 1

2

いくつかのコンパイラには、これを実現するためのコンパイラ固有の方法があります。しかし、それを行う価値はほとんどありません。

これを行う価値がほとんどない理由のリストがあります。

  • コンパイラは通常、ほとんどの場合に記述できるよりも優れたコードを生成します。
  • そうでない場合でも、コードを微調整して、少なくとも書き込み可能なコードを記述し、プログラムの移植性を維持するようにコンパイラーを説得することができます。
  • プログラムはその時間の0.01%をそこで費やしているため、パフォーマンスの問題が認識されているコードは、実際にはパフォーマンスにとって重要ではありません。
  • プログラムを標準のC++のままにしておき、大量の警備員でプログラムを乱雑にしたくない場合#ifdef

あなたが示した例はあまり説得力がありません。

于 2012-10-14T18:20:31.607 に答える