elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  ¿Por qué es necesario enlazar SIEMPRE el objeto y con que se enlaza (NASM)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Por qué es necesario enlazar SIEMPRE el objeto y con que se enlaza (NASM)  (Leído 2,400 veces)
RockPosts

Desconectado Desconectado

Mensajes: 28


Ver Perfil
¿Por qué es necesario enlazar SIEMPRE el objeto y con que se enlaza (NASM)
« en: 24 Agosto 2015, 06:24 am »

Hola a todos, soy nuevo en este foro. La pregunta es por qué es necesario enlazar códigos que no tienen ninguna referencia externa (es puro nasm). Estoy trabajando bajo linux, y este es el código que he empleado:

Código
  1. section     .text
  2. global      _start
  3.  
  4. _start:
  5.  
  6.    mov     edx,len
  7.    mov     ecx,msg
  8.    mov     ebx,1
  9.    mov     eax,4
  10.    int     0x80
  11.  
  12.    mov     eax,1
  13.    int     0x80
  14.  
  15. section     .data
  16.  
  17. msg     db  'Hello, world!',0xA
  18. len     equ $ - msg

El comando que utilizo para ensamblar un objeto es el siguiente:

nasm -f eof main.asm

El código que utilizo para enlazar es el siguiente:

ld -s -o main main.o

Nota: Cabe destacar que si hago esto directamente no funciona:
nasm main.asm
Es cierto que me entrega un archivo, pero este no puede ser ejecutado.

Muchas gracias


En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.935


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: ¿Por qué es necesario enlazar SIEMPRE el objeto y con que se enlaza (NASM)
« Respuesta #1 en: 24 Agosto 2015, 09:15 am »

Que casualidad otro nuevo usuario preguntando por NASM  :rolleyes:

Al enlazar no solo se resuelven las referencias externas, tambien se crea el formato de ejecutable (ya sea MZ, PE, COFF, ELF o lo que sea) y salvo algo muy primitivo o de bajo nivel, como los ejecutables .COM de MS-DOS o un sector de booteo, necesita ser enlazado.


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
RockPosts

Desconectado Desconectado

Mensajes: 28


Ver Perfil
Re: ¿Por qué es necesario enlazar SIEMPRE el objeto y con que se enlaza (NASM)
« Respuesta #2 en: 24 Agosto 2015, 10:37 am »

¿Qué quieres decir con que casualidad? Bueno, gracias por la respuesta, aunque siento decir que ya la habia averiguado investigando mucho (llevaba mucho sin entenderlo bien)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines