Preguntas con la etiqueta [assembly]
Después de ingresar _start, ¿está alineado rsp?
Cuando los programas ingresan a la _startrutina al inicio del programa, ¿el puntero de la pila está alineado con un límite de 16 bytes o debe alinearse manualmente? Quiero decir,
El punto de prueba %eax %eax [duplicado]
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
¿Cómo funcionan exactamente los registros parciales en Haswell/Skylake? Escribir AL parece tener una falsa dependencia de RAX y AH es inconsistente
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
Modos de direccionamiento NASM x86 de 16 bits [duplicado]
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
¿Qué es exactamente el puntero base y el puntero de pila? ¿A qué apuntan?
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
Leer el contador del programa directamente
¿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?
¿Cómo maneja MIPS I la bifurcación en la instrucción ALU anterior sin detenerse?
addiu $6,$6,5 bltz $6,$L5 nop ... $L5: ¿Cómo es esto seguro sin detenerse, algo que el MIPS clásico ni siquiera podía hacer, excepto en caso de fallo de caché? (MIPS
Ensamblaje 8086 en DOSBox: ¿Error con la instrucción idiv?
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
¿Qué instrucciones x86 toman dos (o más) operandos de memoria?
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
¿Código ensamblador versus código de máquina versus código objeto?
¿Cuál es la diferencia entre código objeto, código máquina y código ensamblador? ¿Puedes dar un ejemplo visual de su diferencia?
¿Qué es una retpolina y cómo funciona?
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
Bloquea la manipulación de la memoria mediante ensamblaje en línea
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
¿Cómo obtener código c para ejecutar código de máquina hexadecimal?
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[] =
¿Qué sucede si usa la ABI Linux int 0x80 de 32 bits en código de 64 bits?
int 0x80en Linux siempre invoca la ABI de 32 bits, independientemente del modo desde el que se llame: argumentos en ebx, ecx, ... y números de llamada al sistema desde
¿Por qué gcc no resuelve _mm256_loadu_pd como vmovupd único?
Estoy escribiendo código AVX y necesito cargarlo desde una memoria potencialmente no alineada. Actualmente estoy cargando 4 dobles , por lo tanto usaría la instrucción intrínseca _mm256_loadu_pd ; el código