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
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
modificado pero no me funciona bien
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 ;.....................................
me saca el fichero txt con todo 1 no se como arreglarlo
Código
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