• Miércoles 20 de Noviembre de 2024, 18:41

Autor Tema:  [DUDA] Escribir texto en archivo desde teclado  (Leído 2319 veces)

MantixD

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
[DUDA] Escribir texto en archivo desde teclado
« en: Viernes 15 de Noviembre de 2013, 03:46 »
0
Si mandamos una cadena con una palabra ya definida a que te la imprima en el archivo pues obviamente lo hace, pero yo lo que quiero es pedir caracteres desde teclado y almacenarlos en una cadena y despues al presionar una tecla especial (en mi caso Flecha izq) te lo guarde en un archivo guardado en ruta. Si lo hace pero al abrir el archivo veo que solo almacena pura basura y nada de texto, la vdd no se que mas tenga que hacer uds que tienen mas experiencia en esto me podran ilustrar ya que apenas estoy aprendiendo. De ante mano gracias aqui esta el codigo que les explique:

El programa inicia pidiendote que escribas el texto que va a almacenar en la variable cadena, despues lo contenido en cadena lo pasa a FINAL, y ya escribimos el texto despues presionamos la tecla "FLECHA IZQ" y se cierra el programa eso quiere decir que ya almaceno lo contenido en FINAL al archivo, pero al abrir ese archivo me muestra solo basura

OJO: USO EL EMU8086

Código: [Seleccionar]
.model small
.stack
.data

  manejador dw 0
  ruta db "c:\materias\prueba.asm",0
  cadena db 0
  renglon db 0
  columna db 0
  pagina  db 0
  FINAL   db 200 DUP(" ")

;**************AREA DE MACROS***************
ABRIR_ARCHIVO MACRO RUTA,MODO
  MOV AH, 3DH
  LEA DX, RUTA
  MOV AL, MODO
  INT 21H
ENDM

LEER_ARCHIVO MACRO BYTES,MANEJADR,BUFFER
  MOV AH,3FH
  MOV CX,BYTES
  MOV BX,MANEJADOR
  LEA DX,BUFFER
  INT 21H
ENDM

IMPRIME_SINCOLOR MACRO CADENA
  MOV AH,9
  LEA DX,CADENA
  INT 21H
ENDM

 TECLA MACRO
    mov ah,0
    int 16h
   
 endm
 
CREA_ARCHIVO MACRO archivo_crear
    MOV AH,3ch
    LEA DX,archivo_crear
    mov cx,32
    int 21h
   
ENDM 

ESCRIBIR_ARCHIVO MACRO MANEJADOR,CUANTOS_CARACTERES,QUE_ESCRIBIR
    MOV AH, 40H
    MOV BX, MANEJADOR
    MOV CX, CUANTOS_CARACTERES
    LEA DX, QUE_ESCRIBIR
    INT 21H
   
ENDM

macro cursor renglon,columna,pagina
    mov ah,2
    mov dh,renglon
    mov dl,columna
    mov bh,pagina
    int 10h
endm 

imprime macro pagina,numero,caracter,color
    mov ah,9
    mov bh,pagina
    mov cx,numero
    mov al,caracter
    mov bl,color
    int 10h
 endm




;*******************************************


.code




Inicializa: mov ax,@data
             mov ds,ax
             mov es,ax
             
         
               
         CICLO:
             
             call tec
             cmp ah,4bh
             je manda
             
             
           
             mov cx,10
             rep lodsb
             mov final,al
             imprime 0,1,cadena,0fh
           
             inc columna
             cursor renglon,columna,pagina
             
             
             
             
             jmp ciclo   
                 
             
       manda: ABRIR_ARCHIVO ruta,2
                MOV MANEJADOR, AX;
               
                ESCRIBIR_ARCHIVO MANEJADOR,1,final

               
Salir: mov ax,4c00h
       int 21h
       
tec proc
    mov ah,0
    int 16h
    mov cadena,al
    ret
    tec endp   
« última modificación: Viernes 15 de Noviembre de 2013, 04:06 por MantixD »