Starting up...
XCHG version required 21140 ms.
XCHG-MOV version required 8453 ms.
MOV-XOR version required 4437 ms.
STACK version required 4422 ms.
MOV version required 3125 ms.
Встроенный в Msvs ассемблер -- обмен двух ячеек памяти -- что быстрее?
Пожалуйста, не поленитесь, запустите у себя и запостите сюда результат (и процессор, на котором тестировали).
Кстати сказать, если написать tmp = a[0]; a[0]=a[1]; a[1] = tmp; -- это будет немногим медленнее mov версии.
Исходник в аттаче.
P.S. Приводите время для указанного в программе числа повторений (0x2FFFFFFF) и, пожалуйста, не меняйте его.
Код:
Starting up...
XCHG version required 26954 ms.
XCHG-MOV version required 11140 ms.
MOV-XOR version required 5640 ms.
STACK version required 5344 ms.
MOV version required 2922 ms.
Странно что самый простой способ оказался самым быстрым, не находите?:D
Цитата:
Странно что самый простой способ оказался самым быстрым, не находите?:D
Кстати, я заметил что на пнях 4х стек работает гораздо медленнее...
И ещё -- он хоть и самый простой -- но и самый ресурсоёмкий -- аж 2 регистра надо задействовать...
ясный перец xchg
Starting up...
XCHG version required 34900 ms.
XCHG-MOV version required 14812 ms.
MOV-XOR version required 5978 ms.
STACK version required 7081 ms.
MOV version required 3655 ms.