Preguntas con la etiqueta [assembly]
¿Usar GCC para producir un ensamblaje legible?
Me preguntaba cómo usar GCC en mi archivo fuente C para volcar una versión mnemotécnica del código de máquina para poder ver en qué se estaba compilando mi código. Puedes
¿Por qué EDX debería ser 0 antes de usar la instrucción DIV?
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
Mostrar números con DOS
Me encargaron escribir un programa que mostrara la dirección lineal de la PSP de mi programa. Escribí lo siguiente: ORG 256 mov dx,Msg mov ah,09h ;DOS.WriteStringToStandardOutput int 21h mov ax,ds
¿Cuál es el propósito de la instrucción LEA?
Para mí, parece un MOV original. ¿Cuál es su propósito y cuándo debo usarlo?
Uso básico de inmediatos frente a corchetes en el ensamblaje YASM/NASM x86
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,
¿Por qué la ABI x86-64/AMD64 System V exige una alineación de pila de 16 bytes?
He leído en diferentes lugares que se hace por "razones de rendimiento", pero todavía me pregunto cuáles son los casos particulares en los que esta alineación de 16 bytes mejora
El cargador de arranque no salta al código del kernel
Estoy escribiendo un pequeño sistema operativo, para practicar. Empecé con el gestor de arranque. Quiero crear un pequeño sistema de comando que se ejecute en modo real de 16 bits
¿Cómo escribir hola mundo en ensamblador en Windows?
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
¿Por qué los bucles siempre se compilan en el estilo "hacer...mientras" (salto de cola)?
Cuando intento 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
Reemplazar un contador de bucle de 32 bits por uno de 64 bits introduce desviaciones locas de rendimiento con _mm_popcnt_u64 en las CPU Intel
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
Hacer referencia al contenido de una ubicación de memoria. (modos de direccionamiento x86)
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
¿Utiliza LEA en valores que no son direcciones/punteros?
Estaba tratando de entender cómo funciona la instrucción de cálculo de direcciones, especialmente con leaqel comando. Luego me confundo cuando veo ejemplos que se utilizan leaqpara realizar cálculos aritméticos. Por
¿Qué son los registros guardados del destinatario y del llamante?
Tengo problemas para comprender la diferencia entre los registros guardados de la persona que llama y de la persona que llama y cuándo usar qué. Estoy usando el MSP430: procedimiento:
¿Cómo se obtiene la salida del ensamblador desde la fuente C/C++ en GCC?
¿Cómo se hace esto? Si quiero analizar cómo se compila algo, ¿cómo obtendría el código ensamblador emitido?
glibc scanf Errores de segmentación cuando se llama desde una función que no alinea RSP
Al compilar el siguiente código: global main extern printf, scanf section .data msg: db "Enter a number: ",10,0 format:db "%d",0 section .bss number resb 4 section .text main: mov rdi,