• Viernes 29 de Marzo de 2024, 07:01

Autor Tema:  Archivos assembler  (Leído 12071 veces)

chatum

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Archivos assembler
« en: Jueves 24 de Febrero de 2011, 04:33 »
0
Hola! una pregunta ojala alguien pueda ayudarme estoy haciendo un programa en assembler con archivos y me crea el archivo pero cuando kiero leer los datos uso las interrupciones correctas y me muestra en pantalla los datos pero luego de eso me salen unos codigos raros como caritas simbolos extraños y no entiendo porq pasa eso alguien sabe a que se debe que salgan esos simbolos raros?

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Archivos assembler
« Respuesta #1 en: Jueves 24 de Febrero de 2011, 09:28 »
0
Amigo, no sé quiénes pensarás que somos, pero adivinos desde luego no. Como no dés más detalles, no vas a obtener ninguna respuesta en condiciones.

posman

  • Miembro MUY activo
  • ***
  • Mensajes: 119
    • Ver Perfil
Re: Archivos assembler
« Respuesta #2 en: Jueves 24 de Febrero de 2011, 15:59 »
0
Si estas tratando de imprimir alguna cadena en pantalla, seguramente no se esta encontrando el caracter de fin de cadena. Al final de la cadena debes de tener el caracter ASCII 0 (cero)

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Archivos assembler
« Respuesta #3 en: Jueves 24 de Febrero de 2011, 16:54 »
0
Por deber, no debe. Eso es un convenio que utilizan algunos lenguajes como C, pero no tiene por qué ser así siempre. Pero es posible que sea eso. De todas formas, sin más detalles, como dije anteriormente, son todo especulaciones.

Saludos.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Archivos assembler
« Respuesta #4 en: Jueves 24 de Febrero de 2011, 21:44 »
0
La verdad es que se necesita saber que estas haciendo EXACTAMENTE.

Por ejemplo, puede ser que te falte como dicen antes el caracter terminador de cadena que para MS-DOS es $:
http://www.ctyme.com/intr/rb-2562.htm

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

chatum

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Archivos assembler
« Respuesta #5 en: Viernes 25 de Febrero de 2011, 05:30 »
0
Gracias por responder, Bueno lo que estoy haciendo es un programa que me permite guardar datos en un archivo pero al momento de leer esos datos me muestra caracteres extraños al final aqui les muestro el codigo que uso para leer el archivo


.MODEL TINY
.STACK

.Data
dato db "RELACION DE DATOS$"    
BUFFER  DB 100 DUP(0)
ARCHIVO DB "C:ARCHIVO.TXT",0
HANDLE DW ?

.code
   public relacion
   relacion PROC FAR

   MOV AX,@DATA
   MOV DS,AX        
   
inicio:     mov dx,offset dato
   MOV AH,9
   INT 21H

   MOV AH,3DH ;abrir archivo
   MOV CX,00
   mov DX,offset ARCHIVO
   INT 21H
   MOV HANDLE,AX   

    MOV AH,3FH ;leer archivo
   MOV BX,HANDLE
   MOV CX,100
   MOV DX,offset BUFFER      
   INT 21H
      
   MOV AH,3EH ;cerrar archivo
   MOV BX,HANDLE
   INT 21H
   
   mov DX,offset BUFFER
   MOV AH,9
   INT 21H

   MOV     AH,4CH
                INT     21H
RET
RELACION ENDP
END



o es que estoy haciendo algo mal?, recien me estoy iniciando en assembler y aun tengo algunas dudas no entiendo porq me salen esos simbolos raros estuve leyendo tambien sobre si lees una cadena al final debe tener el simbolo $ para que sepa que termino de leer pero entonces eso tendria que hacerlo al momento que se guarda el dato? muchas gracias por sus respuestas

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Archivos assembler
« Respuesta #6 en: Viernes 25 de Febrero de 2011, 09:10 »
0
¿Escribis una sola cadena? Podrias hacerlo facil y agregar el $ despues de leer pero por logica tendrias que escribirlo tambien, sino al tener dos cadenas ya tendrias problemas seguro.

http://www.ctyme.com/intr/rb-2783.htm

Si le das el valor '$' a el byte en buffer + CX = number of bytes to read  tendria que funcionarte, probalo pero mejor escribilo en el archivo despues.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.