Resultados de la búsqueda a petición "x86-64"
¿Qué significan los prefijos E y R en los nombres de los registros Intel de 32 y 64 bits?
Los nombres de registro de 32 bits comienzan con una E y los de 64 bits comienzan con una R. ¿Qué significan E y R? ¿Hay alguna razón para elegir estos alfabetos? Además, en los registros de 64 bits, también podemos ver en cualquier depurador de ...
¿Trabaja el ensamblaje en línea en C para la paridad de bits?
Estoy tratando de calcular elparidad de bitsde una gran cantidad de uint64's. Por paridad de bits me refiero a una función que acepta un uint64 y genera 0 si el número de bits establecidos es par, y 1 en caso contrario. Actualmente estoy usando ...
¿Por qué la inicialización de objetos estáticos locales utiliza banderas de protección ocultas?
Los objetos estáticos locales en C ++ se inicializan una vez, la primera vez que se necesitan (lo cual es relevante si la inicialización tiene un efecto secundario): void once() { static bool b = [] { std::cout << "hello" << std::endl; ...
¿Ya no se permiten direcciones absolutas de 32 bits en Linux x86-64?
Linux de 64 bits utiliza el modelo de memoria pequeña de forma predeterminada, que coloca todo el código y los datos estáticos por debajo del límite de dirección de 2 GB. Esto asegura que pueda usar direcciones absolutas de 32 bits. Las versiones ...
x64: ¿Por qué este código me da "Error de límite de dirección"
¿Por qué el siguiente ensamblaje x64 me da "Error de límite de dirección"? Solo sucede cuando agrego código despuéscall _print_string. Supongo que algunos de los registros se han modificado, pero ¿no se supone que deben revertirse una ...
Compilador utilizando variables locales sin ajustar RSP
En cuestiónCompiladores: comprensión del código de ensamblaje generado a partir de pequeños programas [https://stackoverflow.com/questions/42994231/compilers-understanding-assembly-code-generated-from-small-programs/42994347#42994347] el ...
¿Cuál es la diferencia entre retq y ret?
Consideremos el siguiente programa, que calcula un cuadrado sin signo del argumento: .global foo .text foo: mov %rdi, %rax mul %rdi retEsto es compilado adecuadamente poras, pero se desmonta a 0000000000000000 <foo>: 0: 48 89 f8 mov %rdi,%rax ...
C ++ en x86-64: ¿cuándo se pasan las estructuras / clases y se devuelven en los registros?
Suponiendo el x86-64 ABI en Linux, ¿bajo qué condiciones en C ++ se pasan las estructuras a las funciones en los registros frente a la pila? ¿En qué condiciones se devuelven en registros? ¿Y cambia la respuesta para las clases? Si ayuda a ...
Error de acceso a memoria sys_rt_sigaction (controlador de señal)
Siguiendo estoInterfaz de señales de Linux [http://syprog.blogspot.mx/2011/10/iterfacing-linux-signals.html]artículo, he estado tratando de usarsys_rt_sigaction enamd64, pero siempre obtenererror de acceso a memoriaAl enviar la señal.estructura ...
Diferencias en la inicialización del registro EAX cuando se llama a una función en C y C ++
Existe una curiosa diferencia entre los ensamblajes de un pequeño programa, cuando se compila como un programa C o como un programa C ++ (para Linux x86-64). El código en cuestión: int fun(); int main(){ return fun(); }Compilarlo como un ...