saludos lo 1º a todos es mi 1º post
soy autodidacta en ensamblador aprendi con un Z81 spectrum
es el lenguaje mas fácil para de aprender aun que dicen q es muy complicao
mi problema es el siguiente
me hice un programa para las quinielas de futbol y va de maravilla
y me hice un programa para la lotería primitiva, ahí tengo el problema
uso para los nº bits y me los guarda en formato primi.dat para leerlo me hice otro programa q lo lee perfectamente pero me lo saca en pantalla en formato txt cuando son pocas apuestas las copio de la pantalla y lo guardo en el block de notas, pero cuando son muchas como unas 3000 es muy tedioso copiar y pegar
lo q os quiero pedir es que rutina tengo q poner para q me lo guarde como txt
si pudierais ayudarme os lo agradecería
siento no saber mas de este lenguaje q me apasiona
e buscado por muchos sitios pero no encuentro nada por eso acudo a vosotros
saludos y gracias si podeis ayudarme y si no también os doy las gracias
este es el programa q me le los bits y los pasa a txt,por pantalla
yo lo quiero en un fichero txt y no por pantalla
no se q parte tengo q cambiar he probado muchas formas y no me da los resultados q quiero
no consigo que me lo guarde ,me sale un fichero de 6000 bytes pero vacio en blenco
sialguien pudiera decir me donde me equivoco, gracias
modificado pero no me funciona bien
me saca el fichero txt con todo 1 no se como arreglarlo
· Los códigos deben ir en etiquetas GeSHi
· Los titulos deben ser desciprtivos al problema
· No debes hacer doble post, usa el botón modificar
>aquí las reglas del foro
-Engel Lex
			soy autodidacta en ensamblador aprendi con un Z81 spectrum
es el lenguaje mas fácil para de aprender aun que dicen q es muy complicao
mi problema es el siguiente
me hice un programa para las quinielas de futbol y va de maravilla
y me hice un programa para la lotería primitiva, ahí tengo el problema
uso para los nº bits y me los guarda en formato primi.dat para leerlo me hice otro programa q lo lee perfectamente pero me lo saca en pantalla en formato txt cuando son pocas apuestas las copio de la pantalla y lo guardo en el block de notas, pero cuando son muchas como unas 3000 es muy tedioso copiar y pegar
lo q os quiero pedir es que rutina tengo q poner para q me lo guarde como txt
si pudierais ayudarme os lo agradecería
siento no saber mas de este lenguaje q me apasiona
e buscado por muchos sitios pero no encuentro nada por eso acudo a vosotros
saludos y gracias si podeis ayudarme y si no también os doy las gracias
este es el programa q me le los bits y los pasa a txt,por pantalla
yo lo quiero en un fichero txt y no por pantalla
no se q parte tengo q cambiar he probado muchas formas y no me da los resultados q quiero
Código (asm) [Seleccionar] 
pila    segment stack
        db  128 dup('pila')
pila    ends
;..................................
;segmento de codigos
;..................................
codigo  segment
lefich  proc  far
        assume  cs:codigo,ds:datos,es:datos,ss:pila
;
        push    ds
        sub     ax,ax
        push    ax
        mov     ax,datos
        mov     es,ax
        mov     ds,ax
        call    modo
        call    abrir
        call    escribe
        call    cerrar
        ret
lefich  endp
;..................................
leer    proc
        push    ax
        push    bx
        push    cx
        push    dx
        push    si
        mov     bx,handle
        mov     cx,nbytes3
        lea     dx,num_bin
        mov     ah,3fh
        int     21h
        jnc     bienleer
        mov     error,ax
        jmp     finleer
bienleer:
        mov     nbytes2,ax
        mov     error,0
finleer:
        pop     si
        pop     dx
        pop     cx
        pop     bx
        pop     ax
        ret
leer    endp
;................................
;procedimiento para pasar los numeros de binario a ascii
;...............................
escribe   proc
        push    ax
        push    bx
        push    cx
        push    dx
        push    si
        mov     cx,nbytes1
cont1:
        push    cx
        mov     cx,18
cont2:
        push    cx
        mov     cx,6
cont:
        push    cx
        call    leer
        sub     ax,ax
        mov     al,num_bin
        mov     num_bin,0
        mov     cx,2
        mov     bx,00
        mov     si,10
relleno:
        mov     byte ptr numer[bx], '0'
        inc     bx
        loop    relleno
llena:
        sub     dx,dx
        div     si
        add     dl,'0'
        dec     bx
        mov     byte ptr numer[bx],dl
        inc     cx
        or      ax,ax
        jnz     llena
        lea     si,numer
        mov     cx,2
repite:
        push    cx
        mov     ah,02h
        mov     dl,[si]
        int     21h
        inc     si
        pop     cx
        loop    repite
        lea     dx,space
        call    es_mensa
        pop     cx
        loop    cont
        lea     dx,salto
        call    es_mensa
        pop     cx
        loop    cont2
        call    tesper
        pop     cx
        loop    cont1
        pop     si
        pop     dx
        pop     cx
        pop     bx
        pop     ax
        ret
escribe  endp
;.....................................
es_mensa   proc
        push    ax
        mov     ah,09h
        int     21h
        pop     ax
        ret
es_mensa   endp
;.......................................
modo    proc
        push    ax
        mov     ah,00h
        mov     al,mon
        int     10h
        pop     ax
        ret
modo    endp
;....................................
tesper  proc
        push    ax
        mov     ah,0
        int     16h
        pop     ax
        ret
tesper  endp
;....................................
abrir   proc
        push    ax
        push    dx
        lea     dx,fichero
        mov     al,acceso
        mov     ah,3dh
        int     21h
        jnc     bienabrir
        mov     error,ax
        jmp     finabrir
bienabrir:
        mov     handle,ax
        mov     error,0
finabrir:
        pop     dx
        pop     ax
        ret
abrir   endp
;.....................................
cerrar  proc
        push    ax
        push    bx
        lea     bx,handle
        mov     ah,3Eh
        int     21h             
        pop     bx
        pop     ax
        ret
cerrar  endp
;................................
;final del programa
codigo  ends
        end  lefichno consigo que me lo guarde ,me sale un fichero de 6000 bytes pero vacio en blenco
sialguien pudiera decir me donde me equivoco, gracias
Código (asm) [Seleccionar] 
escribe   proc
        push    ax
        push    bx
        push    cx
        push    dx
        push    si
        lea     di,campo        
        mov     cx,nbytes1
cont1:       
        push    cx
        mov     dx,conta
        call    leer
        sub     ax,ax
        mov     al,num_bin
        mov     num_bin,0
        mov     cx,2
        mov     bx,00
        mov     si,10
relleno:
        mov     byte ptr numer[bx], '0'
        inc     bx
        loop    relleno
llena:
        sub     dx,dx
        div     si
        add     dl,'0'
        dec     bx
        mov     byte ptr numer[bx],dl
        inc     cx
        or      ax,ax
        jnz     llena
        lea     si,numer
        mov     cx,2
        mov     [di],bl
        inc     di
        inc     dx
        adc     conta,dx
        pop     cx
        loop    cont1
        pop     si
        pop     dx
        pop     cx
        pop     bx
        pop     ax
        ret
escribe  endp
;.....................................
 modificado pero no me funciona bien
me saca el fichero txt con todo 1 no se como arreglarlo
Código (asm) [Seleccionar] 
escribe   proc
        push    ax
        push    bx
        push    cx
        push    dx
        push    si
        mov     cx,nbytes1
cont2:
        lea     di,campo
        mov     dx,conta
        adc     di,dx
        push    cx
        mov     bx,handle
        mov     cx,nbytes3
        lea     dx,num_bin
        mov     ah,3fh
        int     21h
        jnc     bienleer
        mov     error,ax
        jmp     finleer
bienleer:
        mov     nbytes2,ax
        mov     error,0
finleer:                
        mov     ax,nbytes2                    
relleno:
        mov     byte ptr numer[bx], '0'
        inc     bx
        loop    relleno
        mov     si,10
llena:
        sub     dx,dx
        div     si
        add     dl,'0'
        dec     bx
        mov     byte ptr numer[bx],dl        
        or      ax,ax
        jnz     llena        
        mov     [di],dl       
        inc     di
        inc     dx
        adc     conta,1        
       
        lea     dx,space
        call    es_mensa
        pop     cx
        loop    cont2                      
        pop     si
        pop     dx
        pop     cx
        pop     bx
        pop     ax
        ret
escribe  endp
 · Los códigos deben ir en etiquetas GeSHi
· Los titulos deben ser desciprtivos al problema
· No debes hacer doble post, usa el botón modificar
>aquí las reglas del foro
-Engel Lex