0
如何解析表達式並將其放入寄存器,在內聯程序集中使用它,甚至再次使用它並將它放在某處?C++ - 將表達式註冊並在程序集中使用
例如:
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.
順便說一句,原因是性能。
取決於編譯器。 [MSVC]的文檔(http://msdn.microsoft.com/en-us/library/4ks26t93.aspx),[GCC](http://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html ),[GCC再次](http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html)。但是現在編譯器在大多數情況下都可以優化代碼進入程序集。 – DCoder
好處是,編譯器比你聰明,而且'b [i] = a [i] xor 0xfff;'是要走的路。 – elmigranto
@DCoder是的,我知道它。我在反彙編中看到,我可以製作更好的代碼。 (將3個動作與3個動作相結合) – DividedByZero