Error al compilar

Iniciado por Kerber0, 18 Noviembre 2009, 21:09 PM

0 Miembros y 1 Visitante están viendo este tema.

Kerber0

Buenas, otra vez por aqui. Estaba viendo los codigos que estan en esta sección y quize compilar el de Hola mundo!

;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:

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

Eternal Idol

Eso es para MASM de 16 bits (MS-DOS).
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

Riki_89D

#2
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:

.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

B14573R

#3
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 (asm) [Seleccionar]
;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,10h
     int    16h
     MOV AH,4CH
     INT 21H
PRINCIPAL   ENDP
CODIGO       ENDS
     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????
SI SAVES DEFENDERTE SABRAS COMO ATACAR
SI SAVES COMO ATACAR SABRAS DEFENDERTE
.......................

Eternal Idol

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.
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