Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: Kerber0 en 18 Noviembre 2009, 21:09 pm



Título: Error al compilar
Publicado por: Kerber0 en 18 Noviembre 2009, 21:09 pm
Buenas, otra vez por aqui. Estaba viendo los codigos que estan en esta sección y quize compilar el de Hola mundo!
Código:
;Programa HOLA MUNDO
DATOS   SEGMENT
       MENSAJE DB "HOLA MUNDO$"
DATOS   ENDS

PILA   SEGMENT STACK "STACK"
       DB 200 DUP(0)
PILA   ENDS

CODIGO   SEGMENT
       ASSUME CS:CODIGO,DS:DATOS,SS:PILA
PRINCIPAL   PROC
      MOV AX,DATOS
      MOV DS,AX
      MOV AH,9
      MOV DX,OFFSET MENSAJE
      INT 21H
      MOV AH,4CH
      INT 21H
PRINCIPAL   ENDP
CODIGO       ENDS
      END PRINCIPAL

al compilarlo me tira los sgtes errores:
Código:
e@e-desktop:~$ nasm -f elf holamundo.asm
holamundo.asm:2: error: parser: instruction expected
holamundo.asm:4: error: symbol `DATOS' redefined
holamundo.asm:4: error: parser: instruction expected
holamundo.asm:7: error: comma expected after operand 1
holamundo.asm:8: error: symbol `PILA' redefined
holamundo.asm:8: error: parser: instruction expected
holamundo.asm:10: error: parser: instruction expected
holamundo.asm:11: error: parser: instruction expected
holamundo.asm:12: error: parser: instruction expected
holamundo.asm:16: error: comma or end of line expected
holamundo.asm:20: error: symbol `PRINCIPAL' redefined
holamundo.asm:20: error: parser: instruction expected
holamundo.asm:21: error: symbol `CODIGO' redefined
holamundo.asm:21: error: parser: instruction expected
holamundo.asm:22: error: parser: instruction expected

Me faltan algunas librerias, o tendria que modificar unn poco el codigo?

Gracias


Título: Re: Error al compilar
Publicado por: Eternal Idol en 18 Noviembre 2009, 21:12 pm
Eso es para MASM de 16 bits (MS-DOS).


Título: Re: Error al compilar
Publicado por: Riki_89D en 28 Noviembre 2009, 21:39 pm
Eternal tiene razon,y no se compila se ensambla,co cual ensamblas tu? FASM,MASM O kual?


si es con TASM el codigo no debe bariar mucho,bueno ami asin me funciona:
Código:
.MODEL TINY
.STACK 100h
.DATA

TXT DB 'Hola mundo$'

.CODE

START:

MOV AX,SEG TXT
MOV DS,AX
LEA DX,TXT

MOV AH,09
INT 21H

MOV AH,07
INT 21H

MOV AH,4CH
INT 21H

END START




Prueba eso,tiene que irte es ensamblador para los procesadores Intel,eos funciona con el Tasm,con los demas no lo se :S

Eternal puede asesorarte mejor que yo peor creo que para mostrar el texto hay que cargar la direccion efectiva con la funcion LEA en DX no?¿ corregidme si stoi equivocado.


salu2


Título: Re: Error al compilar
Publicado por: B14573R en 7 Enero 2010, 03:59 am
viejo el code esta vien ??' lo probe en windows con el tasm y de lujo

EI: juntando mensajes.

descarga el tasm y lo esnamblas ya te da de lujo lo unico que le agregaria seria un  pause  de la sigiente manera


Código
  1. ;Programa HOLA MUNDO
  2. DATOS   SEGMENT
  3.       MENSAJE DB "HOLA MUNDO$"
  4. DATOS   ENDS
  5.  
  6. PILA   SEGMENT STACK "STACK"
  7.       DB 200 DUP(0)
  8. PILA   ENDS
  9.  
  10. CODIGO   SEGMENT
  11.       ASSUME CS:CODIGO,DS:DATOS,SS:PILA
  12. PRINCIPAL   PROC
  13.      MOV AX,DATOS
  14.      MOV DS,AX
  15.      MOV AH,9
  16.      MOV DX,OFFSET MENSAJE
  17.      INT 21H
  18.      mov ah,10h
  19.      int    16h
  20.      MOV AH,4CH
  21.      INT 21H
  22. PRINCIPAL   ENDP
  23. CODIGO       ENDS
  24.      END PRINCIPAL


con eso te anda vien solo pruebalo con tasm  ::)

EI: juntando mensajes.

no estoy seguro pero parece que para linux es de otra forma o no????


Título: Re: Error al compilar
Publicado por: Eternal Idol en 7 Enero 2010, 09:58 am
Claro amigos, ese codigo solo lo podra ensamblar con un ensamblador de 16 bits para MS-DOS (la interrupcion 21h es SOLO de MS-DOS), para Linux tendra que escribir otro codigo que use los servicios del mismo.