Codigo como tal, solo tengo esta maraña que he usado para experimentar:
TITLE Lectura de un archivo (LeerArchivo.asm)
MOD: Etiquetas GeSHi.
			TITLE Lectura de un archivo (LeerArchivo.asm)
Código (asm) [Seleccionar] 
; Abre, lee y muestra un archivo de texto, usando
; los procedimientos de Irvine32.lib.
include c:\Irvine\Irvine32.inc
include c:\Irvine\Macros.inc
includelib c:\Irvine\Irvine32.lib
includelib c:\Irvine\kernel32.lib
includelib c:\Irvine\user32.lib
TAM_BUFER = 5000
.data
bufer BYTE TAM_BUFER DUP(?)
nombreArchivo BYTE "lista.txt"
manejadorArchivo DWORD ?
palabra DWORD ?
chara DWORD ?
.code
main PROC
; Abre el archivo en modo de entrada.
 mov edx,OFFSET nombreArchivo
 call OpenInputFile
 mov manejadorArchivo,eax
; Comprueba errores.
 cmp eax,INVALID_HANDLE_VALUE ; ¿error al abrir el archivo?
 jne archivo_ok ; no: salta
 mWrite <"Lista.txt no econtrado.",0dh,0ah>
 jmp terminar ; y termina
archivo_ok:
; Lee el archivo y lo coloca en un búfer.
 mov edx,OFFSET bufer
 mov ecx,TAM_BUFER
 call ReadFromFile
 jnc comprobar_tamanio_bufer ; ¿error al leer?
 mWrite "Error al leer el archivo" ; sí: muestra mensaje de error
 call WriteWindowsMsg
 jmp cerrar_archivo
comprobar_tamanio_bufer:
 cmp eax,TAM_BUFER ; ¿el búfer es lo bastante grande?
 jb tam_buf_ok ; sí
 mWrite <"Error: Bufer demasiado chico para el archivo",0dh,0ah>
 jmp terminar ; y termina
tam_buf_ok:
 mov bufer[eax],0 ; inserta terminador nulo
 mWrite "Tamanio del archivo: "
 call WriteDec ; muestra el tamaño del archivo
 call Crlf
; Muestra el búfer.
 ;mWrite <"Bufer:",0dh,0ah,0dh,0ah>
 ;mov edx,OFFSET bufer ; muestra el búfer
 ;call WriteString
 ;call Crlf
;Convertir en bytes
;mov  eax,manejadorArchivo
;mov  edx,OFFSET bufer
;mov  ecx,TAM_BUFER
;call WriteToFile
;mov  bytesWritten,eax
 ;mov palabra,OFFSET bufer
 ;mov edx, DWORD PTR [palabra+0]
 ;call WriteString
 ;CrearPieza
 mov ecx, 5
 mov ax, 0
 mov bx, 0
 
 PALABR:
    mov palabra, 0
    ARMAR:
        mov chara, BYTE PTR OFFSET [bufer+0]
        cmp chara,','
        je SIGUIENTE
        
        add palabra, chara
        inc ax
        jmp ARMAR
        
        
        
        SIGUIENTE:
            loop PALABR
 mov edx, palabra
 call WriteString
;Agarrar Palabra
;push edx
;mov edx, OFFSET bytesWritten
;call WriteString
;pop edx
cerrar_archivo:
 mov eax,manejadorArchivo
 call CloseFile
terminar:
 exit
main ENDP
END mainMOD: Etiquetas GeSHi.