SoloCodigo
Programación General => ASM (Ensamblador) => Mensaje iniciado por: chatum en Jueves 24 de Febrero de 2011, 04:33
-
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?
-
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.
-
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)
-
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.
-
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 (http://www.ctyme.com/intr/rb-2562.htm" onclick="window.open(this.href);return false;)
-
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
-
¿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 (http://www.ctyme.com/intr/rb-2783.htm" onclick="window.open(this.href);return false;)
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.