Resultados de la búsqueda a petición "assembly"

3 la respuesta

¿Usa LEA en valores que no son direcciones / punteros?

Estaba tratando de entender cómo funciona la instrucción de cálculo de direcciones, especialmente conleaq comando. Entonces me confundo cuando veo ejemplos usandoleaq para hacer cálculos aritméticos. Por ejemplo, el siguiente código C, long ...

1 la respuesta

Referencia de los contenidos de una ubicación de memoria. (modos de direccionamiento x86)

Tengo una ubicación de memoria que contiene un personaje que quiero comparar con otro personaje (y no está en la parte superior de la pila, así que no puedo simplementepop eso). ¿Cómo hago referencia al contenido de una ubicación de memoria para ...

2 la respuesta

¿Qué pasa si no hay una declaración de devolución en un bloque de código CALLed en los programas de ensamblado

¿Qué sucede si digo 'llamar' en lugar de saltar? Dado que no hay una declaración de devolución escrita, ¿el control simplemente pasa a la siguiente línea a continuación, o todavía se devuelve a la línea después de la llamada? start: mov $0, ...

1 la respuesta

¿Qué sucede si utiliza la ABI de Linux int 0x80 de 32 bits en código de 64 bits?

int 0x80 en Linux siempre invoca la ABI de 32 bits, independientemente del modo desde el que se llame: args enebx, ecx, ... y números de syscall de/usr/include/asm/unistd_32.h. (O se bloquea en núcleos de 64 bits ...

2 la respuesta

El MOV de @Can x86 realmente es "gratis"? ¿Por qué no puedo reproducir esto en absoluto?

Sigo viendo que la gente dice que la instrucción MOV puede ser gratuita en x86, debido al cambio de nombre del registro. Por mi vida, no puedo verificar esto en un solo caso de prueba. Cada caso de prueba que intento lo desacredita. Por ...

1 la respuesta

x86-64: carga de caché e instrucción de desalojo

Para la arquitectura x86-64, ¿hay alguna instrucción que pueda cargar datos en una dirección de memoria dada al caché? Del mismo modo, ¿hay alguna instrucción que pueda desalojar una línea de caché dada una dirección de memoria correspondiente a ...

1 la respuesta

x86-64 puntero de pila al guardar la falla de segmentación

Actualmente estoy siguiendo junto coneste tutorial [http://web.cecs.pdx.edu/~kstew2/cs533/project/assign1/], pero no soy estudiante de esa escuela. GDB me da una falla de segmentación enthread_start en la línea movq %rsp, (%rdi) # save sp in ...

1 la respuesta

x86_64: ¿es IMUL más rápido que 2x SHL + 2x ADD?

Al mirar el ensamblaje producido por Visual Studio (2015U2) en/O2odo @ (lanzamiento) Vi que este fragmento de código C 'optimizado a mano' se traduce nuevamente en una multiplicación: int64_t calc(int64_t a) { return (a << 6) + (a << 16) - a; ...

2 la respuesta

Las ventajas de usar registros / instrucciones de 32 bits en x86-64

A veces, gcc usa un registro de 32 bits, cuando esperaría que use un registro de 64 bits. Por ejemplo, el siguiente código C: unsigned long long div(unsigned long long a, unsigned long long b){ return a/b; } se compila con la opción -O2 para ...

1 la respuesta

¿Por qué los bucles siempre se compilan en el estilo "do ... while" (salto de cola)?

Al intentar comprender el ensamblaje (con la optimización del compilador activada), veo este comportamiento: Un bucle muy básico como este outside_loop; while (condition) { statements; } A menudo se compila en (pseudocódigo) ; outside_loop ...