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