Ensamblador - lectura de cadenas

 
Vista:

lectura de cadenas

Publicado por cesar (1 intervención) el 16/11/2006 19:24:58
necesito leer una cadena completa hay alguna otra forma que no sea caracter por caracter,
y tambien necesito convertir el dato recibido de ascii a decimal y alreves
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:lectura de cadenas

Publicado por Hanako (1 intervención) el 18/11/2006 01:59:49
Por ejemplo, para leer una cadena de maximo 90 caracteres seria asi...

La declaras en el segmento de datos (las palabras en minusculas son nombres y datos que puedes modificar a tu conveniencia):

nombre LABEL BYTE ; "nombre" es solo una etiqueta para identificar a tu cadena
longitudmax DB SIZEOF cadena ; longitud maxima que podra tener la cadena
longitudreal DB ? ;numero de bytes que mida tu cadena una vez leida
cadena DB 90 DUP(0) ; vector de caracteres en el que se guardara la cadena

La capturas de la siguiente forma:

mov ah,0Ah
mov dx,OFFSET nombre ;nota que se le da la etiqueta no el vector de caracteres
int 21h

E inmediatamente despues le pones el fin de cadena para que no te salgan errores:

mov bh, 00
mov bl, longitudreal
mov cadena[bx], 07
mov cadena[bx+1], '$'

Y asi ya la puedes imprimir con el metodo convencional:

mov ah,9
mov dx,OFFSET cadena ;aqui si le das el vector de caracteres
int 21h

Con respecto a la conversion de ascii a decimal, si lo que capturas es un numero basta con restarle a AL(ya que hayas leido el numero) 48 o bien 30h, puesto que esta es la diferencia que hay entre los numeros y su equivalente en ascii. Para el caso contrario, si quieres imprimir un numero tendras que sumar en vez de restar. Obviamente existe la limitante de que solo funciona para un digito.

ejemplos:
;lees un 3, por lo que en AL se almacena un 51
sub al,48 ;aqui AL ya queda con un 3
;si tienes en alguna variable un 7 y lo quieres imprimir
add variable,48 ;la variable ahora vale 55 que es el equivalente en ascii para el 7 ;ya se puede mandar a imprimir

Bueno, espero que te sirva la informacion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:lectura de cadenas

Publicado por deskiciada (1 intervención) el 21/05/2007 00:12:58
tng un problemilla , soy nueva en esto y kiero leer una cadena el problema esk siguiendo tu ejemplo no de deja introducirla , sera una tonteria pero llevo varios dias con la tonteria, por favor k alguien conteste
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar