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