Resultados de la búsqueda a petición "x86-64"

1 la respuesta

¿Es posible usar instrucciones de 64 bits y 32 bits en el mismo ejecutable en Linux de 64 bits?

Una CPU de 64 bits (amd64) admite instrucciones de Intel de 32 bits en el modo de compatibilidad. Además, una instalación de Linux de 64 bits permite ejecutar ELF que contienen instrucciones de 32 bits si el encabezado ELF dice que es ...

0 la respuesta

Cuándo hacer o no hacer INVLPG, MOV a CR3 para minimizar el enjuague TLB

PrólogoSoy un aficionado a los sistemas operativos, y mi kernel se ejecuta en 80486+, y ya es compatible con la memoria virtual. A partir de 80386, la familia de procesadores x86 de Intel y varios clones de los mismos han admitido la memoria ...

2 la respuesta

¿Por qué NASM en Linux cambia los registros en el ensamblado x86_64?

Soy nuevo en la programación de ensamblajes x86_64. Estaba escribiendo el sencillo programa "Hello World" en el ensamblado x86_64. A continuación se muestra mi código, que funciona perfectamente bien. global _start section .data msg: db "Hello ...

1 la respuesta

El código clang ++ no optimizado genera "movl $ 0, -4 (% rbp)" innecesarios en un main trivial ()

Creé un programa mínimo de C ++: int main() { return 1234; }y lo compiló con clang ++ 5.0 con la optimización deshabilitada (el valor predeterminado-O0)El código de ensamblaje resultante ...

2 la respuesta

¿Por qué no hay instrucciones de "sub rsp" en este prólogo de función y por qué los parámetros de la función se almacenan en compensaciones rbp negativas?

Eso es lo que entendí al leer algunos documentos de segmentación de memoria: cuando se llama a una función, hay algunas instrucciones (llamadas prólogo de función) que guardan el puntero de marco en la pila, copian el valor del puntero de pila en ...

3 la respuesta

Intentando aplicar ingeniería inversa a una función

Estoy tratando de entender el ensamblaje en x86 más. Tengo una función misteriosa que sé que devuelve unint y toma unint argumento. Entonces pareceint mystery(int n){}. Sin embargo, no puedo entender la función en C. La asamblea es: mov %edi, ...

1 la respuesta

¿Cómo determina el kernel de Linux la dirección de carga de ld.so?

Sé que el enlazador dinámico usammap() para cargar bibliotecas. Supongo que es el kernel quien carga tanto el ejecutable como su.interpregrese al mismo espacio de direcciones, pero ¿cómo determina dónde? Me di cuenta queld.soLa dirección de carga ...

1 la respuesta

Use ld en la plataforma de 64 bits para generar un ejecutable de 32 bits

Escribí una asamblea que se ensambla con: $as --32 -o hello.o hello.sLuego intenté generar un ejecutable con: $ld -o hello hello.oMe da un error: ld: i386 architecture of input file `ConditionalBranching.o' is incompatible with i386:x86-64 ...

2 la respuesta

CMake -G Ninja en Windows especifica x64

Estoy usando CMake en Windows con el generador Ninja cmake -G Ninja ..Esto usa la cadena de herramientas predeterminada de Windows x86. ¿Cómo especificar x64 usando el generador Ninja? PD: sé cómo generar x64 con Visual Studio cmake -G "Visual ...

1 la respuesta

¿Cuántos ciclos de reloj cuesta la exponenciación AVX / SSE en la CPU moderna x86_64?

¿Cuántos ciclos de reloj cuesta la exponenciación AVX / SSE en la CPU moderna x86_64? Estoy a punto de:pow(x, y) = exp(y*log(x)) [https://stackoverflow.com/questions/25936031/pow-for-sse-types] Es decir. Haz ambosexp() ylog() ¿Las instrucciones ...