¿Alguien podría explicar qué significa esto? (Sintaxis Intel, x86, Windows) and dword ptr [ebp-4],
¿Alguien podría explicar qué significa esto? (Sintaxis Intel, x86, Windows) and dword ptr [ebp-4],
Ésta es una pregunta de bajo nivel. En el ensamblaje x86 hay dos instrucciones SSE: MOVDQA xmmi, m128 y MOVNTDQA xmmi, m128 El Manual del desarrollador de software IA-32 dice que NT en MOVNTDQA significa Non-Temporal , y que por lo demás es lo mismo que MOVDQA. Mi pregunta es, ¿qué...
Todas las siguientes instrucciones hacen lo mismo: poner %eaxa cero. ¿Cuál es la forma óptima (que requiere menos ciclos de máquina)? xorl %eax, %eax mov $0, %eax andl $0,
¿Cuál es el propósito real y el uso de los registros EDI y ESI en ensamblador? Sé que se utilizan para operaciones de cadenas para empezar. ¿Alguien también puede dar un
En el Tour x86-64 de los manuales de Intel , leí Quizás el hecho más sorprendente es que una instrucción como MOV EAX, EBXautomáticamente pone a cero los 32 bits superiores del RAXregistro. La documentación de Intel (3.4.1.1 Registros de propósito general en modo de 64 bits en la arquitectura...
Estoy tratando de entender alguna asamblea. El montaje de la siguiente manera, me interesa la testllínea: 000319df 8b4508 movl 0x08(%ebp), %eax 000319e2 8b4004 movl 0x04(%eax), %eax 000319e5 85c0 testl %eax, %eax 000319e7 7407 je 0x000319f0 Estoy tratando de entender ese punto testlentre...
Instalé Ubuntu 14.04 (Trusty Tahr) ayer. Todo parece estar bien. Pero cuando intenté compilar código C, me encontré con el siguiente error. El error parece deberse a que el sistema operativo carece de compatibilidad con la arquitectura de 32 bits. La salida de error es la siguiente: /usr/bin/ld:...
He estado perfilando algunas de nuestras matemáticas básicas en un Intel Core Duo, y mientras observaba varios enfoques de raíz cuadrada, noté algo extraño: al usar las operaciones escalares SSE, es más rápido tomar una raíz cuadrada recíproca y multiplicarla para obtener el sqrt, que usar el...
En su forma actual, esta pregunta no se ajusta bien a nuestro formato de preguntas y respuestas. Esperamos que las respuestas estén respaldadas por hechos, referencias o experiencia, pero es probable que esta pregunta solicite debate, argumentos, encuestas o una discusión extensa....
Estoy intentando instalar un servicio de Windows usando InstallUtil.exe y aparece el mensaje de error System.BadImageFormatException: no se pudo cargar el archivo o ensamblado ' {xxx.exe}' o una de sus dependencias. Se intentó cargar un programa con un formato incorrecto. ¿Lo que...
Un par de preguntas sobre los anillos de privilegios de la CPU x86: ¿Por qué la mayoría de los sistemas operativos no utilizan los anillos 1 y 2? ¿Es solo para mantener la compatibilidad del código con otras arquitecturas o hay una mejor razón? ¿Existe algún sistema operativo que realmente use...
Entonces sé cuáles se supone que son los siguientes registros y sus usos: CS = Segmento de código (utilizado para IP) DS = segmento de datos (utilizado para MOV) ES = Segmento de destino (utilizado para MOVS, etc.) SS = Segmento de pila (usado para SP) Pero, ¿para qué están destinados los...
Al leer acerca de ensamblador a menudo me encuentro con gente que escribe que empujan un cierto registro del procesador y el pop de nuevo más tarde para restaurar su estado anterior. ¿Cómo se puede presionar un registro? ¿Dónde se empuja? ¿Por qué es necesario? ¿Esto se reduce a una sola...
Estoy haciendo un trabajo crítico para el rendimiento en C ++ y actualmente estamos usando cálculos de números enteros para problemas que son inherentemente de punto flotante porque "es más rápido". Esto causa muchos problemas molestos y agrega mucho código molesto. Ahora, recuerdo haber leído...
Quería escribir algo básico en ensamblaje en Windows, estoy usando NASM, pero no puedo hacer que nada funcione. ¿Cómo escribir y compilar hello world sin la ayuda de funciones C en Windows?
Soy un principiante en lenguaje ensamblador y he notado que el código x86 emitido por los compiladores generalmente mantiene el puntero del marco incluso en modo de lanzamiento / optimizado cuando podría usar el EBPregistro para otra cosa. Entiendo por qué el puntero del marco puede hacer que el...
Esta pregunta está destinada a llenar el vacío de buena información gratuita sobre el tema. Creo que una buena respuesta encajará en una gran respuesta SO o al menos en algunas respuestas. El objetivo principal es brindar a los principiantes la información suficiente para que puedan tomar el...
Me gustaría desmontar el MBR (primeros 512 bytes) de un disco x86 de arranque que tengo. He copiado el MBR a un archivo usando dd if=/dev/my-device of=mbr bs=512 count=1 ¿Alguna sugerencia para una utilidad de Linux que pueda desensamblar el archivo mbr?
¿Alguien puede explicar qué hace el siguiente código ensamblador? int 0x80
Comenzando con Pentium Pro (microarquitectura P6), Intel rediseñó sus microprocesadores y usó el núcleo RISC interno bajo las antiguas instrucciones CISC. Desde Pentium Pro, todas las instrucciones CISC se dividen en partes más pequeñas (uops) y luego las ejecuta el núcleo RISC. Al principio,...