Preguntas etiquetadas con assembly

Preguntas de programación en lenguaje ensamblador (asm). ASEGÚRESE DE TAMBIÉN TAG con el procesador y / o conjunto de instrucciones que está utilizando, así como el ensamblador. ADVERTENCIA: Para los ensamblados .NET, use la etiqueta [.net-assembly] en su lugar. Para Java ASM, use la etiqueta [java-bytecode-asm] en su lugar.

12
¿Por qué GCC no optimiza a * a * a * a * a * a to (a * a * a) * (a * a * a)?
Estoy haciendo una optimización numérica en una aplicación científica. Una cosa que noté es que GCC optimizará la llamada pow(a,2)compilándola a*a, pero la llamada pow(a,6)no está optimizada y realmente llamará a la función de biblioteca pow, lo que ralentiza enormemente el rendimiento. (En contraste, el compilador Intel C ++ , …

14
¿Es <más rápido que <=?
Es if( a &lt; 901 )más rápido que if( a &lt;= 900 ). No exactamente como en este ejemplo simple, pero hay ligeros cambios de rendimiento en el código complejo de bucle. Supongo que esto tiene que ver con el código de máquina generado en caso de que sea cierto.

10
Reemplazar un contador de bucle de 32 bits con 64 bits introduce desviaciones de rendimiento locas con _mm_popcnt_u64 en las CPU Intel
Estaba buscando la forma más rápida de obtener popcountgrandes conjuntos de datos. Encontré un efecto muy extraño : cambiar la variable de bucle de unsigneda uint64_thizo que el rendimiento se redujera en un 50% en mi PC. El punto de referencia #include &lt;iostream&gt; #include &lt;chrono&gt; #include &lt;x86intrin.h&gt; int main(int argc, …




30
¿Cuándo es el ensamblaje más rápido que C?
Una de las razones declaradas para conocer al ensamblador es que, en ocasiones, puede emplearse para escribir código que será más eficaz que escribir ese código en un lenguaje de nivel superior, C en particular. Sin embargo, también he oído que declaró muchas veces que a pesar de que no …
475 c  performance  assembly 


4
¿Por qué el cambio de Java en ints contiguos parece ejecutarse más rápido con casos agregados?
Estoy trabajando en algún código Java que necesita ser altamente optimizado ya que se ejecutará en funciones activas que se invocan en muchos puntos de la lógica de mi programa principal. Parte de este código implica multiplicar doublevariables por 10elevadas a s arbitrarias no negativas int exponent. Una forma rápida …

10
¿Usando GCC para producir un ensamblaje legible?
Me preguntaba cómo usar GCC en mi archivo fuente C para volcar una versión mnemónica del código de máquina para poder ver en qué se estaba compilando mi código. Puede hacer esto con Java, pero no he podido encontrar una manera con GCC. Estoy tratando de reescribir un método C …
256 c  gcc  assembly 

3
¿Qué es un retpoline y cómo funciona?
Con el fin de mitigar la divulgación de memoria de kernel o de procesos cruzados (el ataque Spectre ), el kernel 1 de Linux se compilará con una nueva opción , -mindirect-branch=thunk-externintroducida gccpara realizar llamadas indirectas a través de una llamada retpoline . Este parece ser un término recién inventado, …

10
¿Cómo se ve el lenguaje ensamblador multinúcleo?
Érase una vez, para escribir el ensamblador x86, por ejemplo, tendría instrucciones que indicaran "cargue el registro EDX con el valor 5", "incremente el registro EDX", etc. Con las CPU modernas que tienen 4 núcleos (o incluso más), a nivel de código de máquina, ¿parece que hay 4 CPU separadas …
243 assembly  x86  cpu  multicore  smp 

12
¿Es 'cambiar' más rápido que 'si'?
¿Es una switchdeclaración realmente más rápida que una ifdeclaración? Ejecuté el siguiente código en el compilador x64 C ++ de Visual Studio 2010 con la /Oxbandera: #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; #include &lt;time.h&gt; #define MAX_COUNT (1 &lt;&lt; 29) size_t counter = 0; size_t testSwitch() { clock_t start = clock(); size_t i; …



Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.