Preguntas con la etiqueta [x86]

Lista x86 preguntas

El punto de prueba %eax %eax [duplicado]

5
respuestas
219
votos
276.5k
vistas

Posible duplicado: ensamblaje x86: ¿'testl' eax contra eax? Soy muy nuevo en la programación en lenguaje ensamblador y actualmente estoy intentando leer el lenguaje ensamblador generado a partir de un

Este bucle se ejecuta en una iteración cada 3 ciclos en Intel Conroe/Merom, con un cuello de botella en imulel rendimiento como se esperaba. Pero en Haswell/Skylake, se ejecuta en

Tengo problemas para señalar una dirección y escribir, en mi caso, una variable de tamaño de byte. Esto me da el error "error: dirección efectiva no válida": mov byte[AX], byte

Usando este ejemplo proveniente de Wikipedia, en el que DrawSquare()se llama DrawLine(): (Tenga en cuenta que este diagrama tiene direcciones altas en la parte inferior y direcciones bajas en la

¿Qué causa los fallos de página?

8
respuestas
42
votos
93.8k
vistas

Según Wikipedia : Una falla de página es una trampa para el software generada por el hardware cuando un programa accede a una página que está asignada en el espacio

Instrucciones de carga globalmente invisibles

3
respuestas
8
votos
2.0k
vistas

¿Es posible que algunas de las instrucciones de carga nunca sean visibles globalmente debido al reenvío de carga de la tienda? Para decirlo de otra manera, si una instrucción de

Es una afirmación común que un almacenamiento de bytes en la caché puede resultar en un ciclo interno de lectura, modificación y escritura, o perjudicar el rendimiento o la latencia

Leer el contador del programa directamente

7
respuestas
36
votos
29.4k
vistas

¿Se puede leer el contador del programa en las CPU Intel directamente (es decir, sin "trucos") en modo kernel o en algún otro modo?

Esta pregunta es un seguimiento/aclaración de esto: ¿La instrucción MOV x86 implementa un almacén atómico C++11 Memory_order_release? Esto indica que la MOVinstrucción de ensamblaje es suficiente para realizar la semántica

Estaba ayudando a un amigo mío a depurar su programa y lo redujimos a un problema que ocurre incluso aquí: .MODEL small .STACK 16 .CODE start: mov ax, 044c0h mov

Pensé que había cero. Pero veo aquí Las instrucciones con dos operandos de memoria son extremadamente raras. No encuentro nada que explique qué instrucciones, aunque raras, existen. ¿Cuáles son las

¿Qué es una retpolina y cómo funciona?

3
respuestas
282
votos
97.5k
vistas

Para mitigar la divulgación de memoria del kernel o entre procesos (el ataque Spectre ), el kernel de Linux 1 se compilará con una nueva opción , -mindirect-branch=thunk-externintroducida para gccrealizar

Soy nuevo en cosas de bajo nivel, por lo que no tengo ni idea de qué tipo de problemas podrías enfrentar allí y ni siquiera estoy seguro de entender bien

Quiero un método C simple para poder ejecutar código de bytes hexadecimal en una máquina Linux de 64 bits. Aquí está el programa en C que tengo: char code[] =

La forma general para el direccionamiento de memoria en Intel y AT&T Syntax es la siguiente: [base + index*scale + disp] # Intel, including GAS .intel_syntax noprefix disp(base, index, scale)