Preguntas con la etiqueta [x86]

Lista x86 preguntas

Dos subprocesos diferentes dentro de un solo proceso pueden compartir una ubicación de memoria común leyéndola y/o escribiendo en ella. Por lo general, dicho intercambio (intencional) se implementa mediante operaciones

¿Existe alguna diferencia en la velocidad de ejecución usando el siguiente código? cmp al, 0 je done y lo siguiente: or al, al jz done Sé que las instrucciones JE

Tengo una lista arbitraria de ensamblados .NET. Necesito verificar mediante programación si cada DLL se creó para x86 (a diferencia de x64 o cualquier CPU). es posible?

Tenemos una prueba comparativa de rendimiento de memoria simple. Todo lo que hace es memcpy repetidamente para un gran bloque de memoria. Al observar los resultados (compilados para 64 bits)

He aprendido sobre diferentes técnicas de mapeo de caché, como el mapeo directo y el mapeo totalmente asociativo o asociativo por conjuntos, y las compensaciones entre ellas. ( Wikipedia )

Puedo insertar 4 bytes en la pila haciendo esto: push DWORD 123 Pero descubrí que puedo usar pushsin especificar el tamaño del operando: push 123 En este caso, ¿cuántos bytes

Quiero poder utilizar el registro de puntero base ( %rbp) dentro del conjunto en línea. Un ejemplo de juguete de esto es así: void Foo(int &x) { asm volatile ("pushq

Muchos métodos que se encuentran en algoritmos de alto rendimiento podrían (y se simplifican) simplificarse si se les permitiera leer una pequeña cantidad más allá del final de los buffers

Me di cuenta cuando EDX contiene algún valor predeterminado aleatorio como 00401000, y luego uso una instrucción DIV como esta: mov eax,10 mov ebx,5 div ebx provoca un ERROR DE

¿Cuál es el propósito de la instrucción LEA?

0
respuestas
871
votos
900.4k
vistas

Para mí, parece un MOV original. ¿Cuál es su propósito y cuándo debo usarlo?

Supongamos que tengo lo siguiente declarado: section .bss buffer resb 1 Y estas instrucciones siguen en section .text: mov al, 5 ; mov-immediate mov [buffer], al ; store mov bl,

Quería escribir algo básico en ensamblaje en Windows. Estoy usando NASM, pero no consigo que nada funcione. ¿Cómo escribo y compilo un programa Hola Mundo sin la ayuda de funciones

¿ Es legal acceder reinterpret_casta float*objetos a través de un tipo de puntero diferente?__m256*float constexpr size_t _m256_float_step_sz = sizeof(__m256) / sizeof(float); alignas(__m256) float stack_store[100 * _m256_float_step_sz ]{}; __m256& hwvec1 =

Estaba buscando la forma más rápida de acceder a popcountgrandes conjuntos de datos. Encontré un efecto muy extraño : cambiar la variable del bucle de unsignedauint64_t hizo que el rendimiento

Tengo una ubicación de memoria que contiene un carácter que quiero comparar con otro carácter (y no está en la parte superior de la pila, por lo que no puedo