Diferencia entre revisiones de «Desensamblador»

Contenido eliminado Contenido añadido
Sin resumen de edición
Línea 1:
Un '''desensamblador''' es un [[programa de computadoracomputador|programa]] de computadoracomputador que traduce el [[lenguaje de máquina]] a [[lenguaje ensamblador]], la operación inversa de la que hace el [[ensamblador]]. Un desensamblador difiere de un [[decompilador]], en que éste apunta a un [[lenguaje de alto nivel]] en vez de al lenguaje ensamblador. la salida de un desensamblador, el desensamblado, es a menudo formateada para la legibilidad humana en vez de ser adecuada para la entrada a un ensamblador, haciendo que éste sea principalmente una herramienta de [[ingeniería inversa]].
 
El [[código fuente]] en [[lenguaje ensamblador]] generalmente permite el uso de [[Constante (informática)|constantes]] y [[Comentario (programación de computadores)|comentarios]] del programador. Éstos son generalmente removidos, por el ensamblador, del código ensamblado a [[código de máquina]]. De esta manera, un desensamblador operando sobre el código de máquina, produciría el desensamblado careciendo de estas constantes y comentarios; la salida desensamblada se vuelve más difícil de ser interpretada por un humano que el código fuente con comentarios original. Algunos desensambladores hacen uso de la información de [[depuración simbólica]] presente en los [[archivo objeto|archivos objeto]] tales como el [[Executable and Linkable Format|ELF]]. En una sesión interactiva, el [[Interactive Disassembler]] permite al usuario humano colocar símbolos mnemónicos para valores o regiones de código: la intuición humana aplicada al proceso de desensamblado a menudo va en paralelo con la creatividad humana en el proceso de la escritura del código.
 
El desensamblado no es una ciencia exacta: En las plataformas [[CISC]] con instrucciones de ancho variable, o en presencia de [[código automodificable]], es posible para un simple programa tener dos o más desensamblados razonables. Determinar qué instrucciones serían encontradas realmente durante una corridaejecución del programa [[reducción (complejidad)|reduce]] al [[problema de parada]] probado no solucionable.
 
El programa desensamblador a utilizar, por trabajar con lenguaje máquina y ensamblador, depende exclusivamente del microprocesador que estamos usando (para que pueda reconocer las instrucciones del código binario), de la arquitectura de la máquina y del sistema operativo en uso (no es lo mismo [[Microsoft Windows]] que [[GNU/Linux]]).