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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  errores al compilar asm
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: errores al compilar asm  (Leído 13,936 veces)
Drewermerc

Desconectado Desconectado

Mensajes: 259



Ver Perfil WWW
errores al compilar asm
« en: 3 Mayo 2014, 22:15 pm »

hola a todos.
bueno apenas estoy empesando con programacion asm y bueno quise compilar.

Código
  1. .MODEL SMALL
  2.  
  3. Stack SEGMENT STACK 'STACK'
  4. DB 200h DUP(?)
  5. Stack ENDS
  6.  
  7. Data SEGMENT 'DATA'
  8. strMensaje db   "hola mundo", 10, 13, "$"
  9. strMensajedos db "este es otro mensaje", 10, 13, "$"
  10. Data ENDS
  11.  
  12. Code SEGMENT 'CODE'
  13. ASSUME CS:Code, DS:Data, SS:Stack
  14.  
  15.  
  16. Inicio PROC
  17. mov ax,data
  18. mov ds,ax
  19. mov dx,offset strMensajedos
  20. int 21h
  21. mov dx,offset strMensajedos
  22. int 21h
  23. mov ax, 4c00h
  24. int 21h
  25. Inicio ENDP
  26. Code ENDS
  27. END Inicio
  28.  



cuando lo compilo en windows 8 x64 me salen estos errores y warnings:
C:\nasm-2.11.02\prog>yasm-1.2.0-win64.exe -f win64 -o c:\nasm-2.11.02\prog\uno.asm.o  c:\nasm-2.11.02\prog\uno.asm
c:\nasm-2.11.02\prog\uno.asm:3: warning: Unrecognized string qualifier
c:\nasm-2.11.02\prog\uno.asm:4: error: instruction expected after label
c:\nasm-2.11.02\prog\uno.asm:10: error: instruction expected after label
c:\nasm-2.11.02\prog\uno.asm:13: error: junk at end of line, first unrecognized character is `:'
c:\nasm-2.11.02\prog\uno.asm:13: warning: `DS' segment register ignored in 64-bit mode
c:\nasm-2.11.02\prog\uno.asm:13: warning: `SS' segment register ignored in 64-bit mode
c:\nasm-2.11.02\prog\uno.asm:16: error: instruction expected after label
c:\nasm-2.11.02\prog\uno.asm:17: error: undefined symbol `data' (first use)
c:\nasm-2.11.02\prog\uno.asm:17: error:  (Each undefined symbol is reported only once.)
c:\nasm-2.11.02\prog\uno.asm:18: warning: `ds' segment register ignored in 64-bit mode
c:\nasm-2.11.02\prog\uno.asm:19: error: instruction expected after label
c:\nasm-2.11.02\prog\uno.asm:19: error: undefined symbol `offset' (first use)
c:\nasm-2.11.02\prog\uno.asm:29: error: instruction expected after label
c:\nasm-2.11.02\prog\uno.asm:30: error: instruction expected after label

C:\nasm-2.11.02\prog>

y cuando compilo en winxp me sale esto.
C:\nasm>nasm.exe -f win32 -o c:\prog\dos.exe c:\prog\dos.asm
c:\prog\dos.asm:1: error: attempt to define a local label before any non-local l
abels
c:\prog\dos.asm:1: error: parser: instruction expected
c:\prog\dos.asm:4: error: comma expected after operand 1
c:\prog\dos.asm:5: error: symbol `Pila' redefined
c:\prog\dos.asm:5: error: parser: instruction expected
c:\prog\dos.asm:9: error: symbol `Datos' redefined
c:\prog\dos.asm:9: error: parser: instruction expected
c:\prog\dos.asm:12: error: parser: instruction expected
c:\prog\dos.asm:14: error: parser: instruction expected
c:\prog\dos.asm:18: error: comma, colon, decorator or end of line expected after
 operand
c:\prog\dos.asm:23: error: symbol `Inicio' redefined
c:\prog\dos.asm:23: error: parser: instruction expected
c:\prog\dos.asm:24: error: symbol `Codigo' redefined
c:\prog\dos.asm:24: error: parser: instruction expected
c:\prog\dos.asm:25: error: parser: instruction expected

C:\nasm>

tambien ya intente hacer primero el archivo .o y despues el .exe pero al intentar crear el .o mesalen los mismos errores.
bueno espero que me pueda ayudar saludos Drewermerc.


« Última modificación: 3 Mayo 2014, 22:18 pm por Drewermerc » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


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


Ver Perfil WWW
Re: errores al compilar asm
« Respuesta #1 en: 3 Mayo 2014, 22:30 pm »

Esos son errores al ensamblar pero igual hay otro problema de concepto, ese codigo es de 16 bits para MS-DOS y vos estas intentando usar un ensamblador de 64/32 bits para Windows. Ademas hay que tener en cuenta que cada ensamblador tiene una sintaxis y no necesariamente soporta la de otros ...


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
Drewermerc

Desconectado Desconectado

Mensajes: 259



Ver Perfil WWW
Re: errores al compilar asm
« Respuesta #2 en: 4 Mayo 2014, 01:10 am »

hola Eternal Idol.
gracias por responder.

bueno pues ya pude compilar pero en linux cuando intento compilar en windows ya sea 8 o xp el .o se crea bien pero al crear el .exe me dice lo siguiente:

primero creo el .o asi:
nasm -f elf64 -o c:\nasm-2.11.02\hola2.o c:\nasm-2.11.02\hola2.nasm
despues al crear el .exe me da ese error:
ldrdf.exe -o c:\nasm-2.11.02\hola2.exe  c:\nasm-2.11.02\hola2.o
ldrdf:c:\nasm-2.11.02\hola2.o: invalid file format

tambien quisiera que me ayudaras con estas dudas.
1.-queria saber por que algunos tutoriales en internet compilar asm de 16bist en win7.
2.-si compilo asm de x32 este funcionara en cualquier sistema x32.
3.-si compilo asm x32 funcionara en x64 o tengo que programarlo especialmente para x64.
4.-bueno por ultimo qusiera saber si entonces ya no se usa asm de 16bits.

bueno gracias de nuevo espero que me puedas ayudar.
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


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


Ver Perfil WWW
Re: errores al compilar asm
« Respuesta #3 en: 4 Mayo 2014, 01:28 am »

bueno pues ya pude compilar pero en linux cuando intento compilar en windows ya sea 8 o xp el .o se crea bien pero al crear el .exe me dice lo siguiente:

Me sorprende bastante que lo hayas podido ensamblar (no compilar) en Linux, tal vez estes equivocado ... igual es imposible que funcione el ejecutable ya que usa los servicios propios de MS-DOS (los de la interrupcion 21h).

1.-queria saber por que algunos tutoriales en internet compilar asm de 16bist en win7.
2.-si compilo asm de x32 este funcionara en cualquier sistema x32.
3.-si compilo asm x32 funcionara en x64 o tengo que programarlo especialmente para x64.
4.-bueno por ultimo qusiera saber si entonces ya no se usa asm de 16bits.

En las versiones de 32 bits de Windows modernas todavia se pueden ejecutar programas de 16 bits.

Si ensamblas un programa de 32 bits para el procesador x86 funcionara en cualquier S.O. que soporte el formato de ejecutable ... es decir nativamente un programa para Windows funcionara en Windows.

Los procesadores de x64 tiene un modo de compatibilidad con x86, Windows lo usa por ejemplo.

Muy poco, todos los S.O.s modernos trabajan en 32 y 64 bits.
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
Drewermerc

Desconectado Desconectado

Mensajes: 259



Ver Perfil WWW
Re: errores al compilar asm
« Respuesta #4 en: 4 Mayo 2014, 01:43 am »

hola si tienes razon es ensamblar y bueno es que creo que se me olvido mencionar que pude compilar pero encontrado el codigo para x32 y x64.
mira este es el codigo de x32.
entonces no saber a que se debera el error que me da al tratar de generar el .exe
Código
  1. global _start            ; global entry point export for ld
  2.  
  3. section .text
  4. _start:
  5.  
  6.    ; sys_write(stdout, message, length)
  7.  
  8.    mov eax, 4        ; sys_write syscall
  9.    mov ebx, 1        ; stdout
  10.    mov ecx, message    ; message address
  11.    mov edx, length        ; message string length
  12.    int 80h
  13.  
  14.    ; sys_exit(return_code)
  15.  
  16.    mov eax, 1        ; sys_exit syscall
  17.    mov ebx, 0        ; return 0 (success)
  18.    int 80h
  19.  
  20. section .data
  21.    message: db 'Hello, world!',0x0A    ; message and newline
  22.    length: equ $-message            ; NASM definition pseudo-instruction
  23.  
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


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


Ver Perfil WWW
Re: errores al compilar asm
« Respuesta #5 en: 4 Mayo 2014, 02:08 am »

La clave estaba aca:
Si ensamblas un programa de 32 bits para el procesador x86 funcionara en cualquier S.O. que soporte el formato de ejecutable ... es decir nativamente un programa para Windows funcionara en Windows.

Con ese codigo no podes generar un .exe (PE) para Windows, es un ELF para Linux (usa los servicios propios de este S.O., los de la interrupcion 080h) como le pasas de argumento. Y obviamente Windows no soporta nativamente un ELF ...

PD. x32 no existe, hay 32 bits, 64 bits, x86, x64, mira en Wikipedia.
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
Drewermerc

Desconectado Desconectado

Mensajes: 259



Ver Perfil WWW
Re: errores al compilar asm
« Respuesta #6 en: 4 Mayo 2014, 02:37 am »

gracias por la aclaracion.
entonces programar esm en linux y wndows es diferente.
nose si tengas un tutorial o alguna informacion sobre programacion de asm de 32bits en windows y lunux es que no encuentro nada que me funcione y encuentro casi pura informacion de 16bits.
y bueno nose si sepas es que tambien e queri probar con masm pero al instalar me dice que nesesito tener microsoft visual studio c++ express redistributable 2005.
espeor que me puedas ayudar.
« Última modificación: 4 Mayo 2014, 02:45 am por Drewermerc » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


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


Ver Perfil WWW
Re: errores al compilar asm
« Respuesta #7 en: 4 Mayo 2014, 11:25 am »

Si, es diferente, cada S.O. provee unos servicios y una forma de acceder a ellos.

En los temas con chincheta de este subforo tenes toda la informacion que queres, en este por ejemplo esta el enlace a los tutoriales de Iczelion:
http://foro.elhacker.net/asm/entry_point-t256455.0.html

El redistributable lo podes bajar de Internet facilmente, buscalo en Google, es redistribuible como su nombre lo indica.

http://blogs.msdn.com/b/nikolad/archive/2006/04/11/download-location-for-vcredist.aspx
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
Drewermerc

Desconectado Desconectado

Mensajes: 259



Ver Perfil WWW
Re: errores al compilar asm
« Respuesta #8 en: 4 Mayo 2014, 16:37 pm »

holagracias pro responder.
nose si sepas de alguna otra paguian por que los intente descargar pero ningun link funciona todo dicen error file no found.
bueno espero que me puedas ayudar.
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


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


Ver Perfil WWW
Re: errores al compilar asm
« Respuesta #9 en: 4 Mayo 2014, 16:58 pm »

¿El redistributable?

http://www.microsoft.com/es-es/search/DownloadResults.aspx?q=Microsoft+Visual+C%2b%2b+2005+Redistributable+Package

¿Los tutoriales de Iczelion?

http://win32assembly.programminghorizon.com/tutorials.html
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
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

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