我有一个非常大的函数,用于对大量的int
数据进行排序。代码除了速度慢之外一切正常。为了解决这个问题,我的第一步是在C++
中嵌入一些asm
代码。如何使用asm
交换2个变量?我尝试了以下代码:
_asm{ push a[x]; push a[y]; pop a[x]; pop a[y];}
并且还有这个:
_asm(mov eax, a[x];mov ebx,a[y]; mov a[x],ebx; mov a[y],eax;}
但是两者都会崩溃。我如何在这些交换中节省时间?我使用的是VS_2010。
std::swap
来进行交换,而不是使用临时的int
变量。我怀疑这样做可能不会更好,但它更明显你正在做什么,并且代码更简洁。 - Adam Badura