Ensamblador - String

 
Vista:

String

Publicado por blacksaga (1 intervención) el 18/08/2002 04:01:06
Hola necesito con urgencia lograr esto:
copiar desde el segundo caracter hasta el fuin de una cadena.
ejemplo:
'esta string'
'sta string'
como puedo hacer eso ? Gracias.
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:String

Publicado por David Cañadas (3 intervenciones) el 25/08/2002 12:22:39
Bueno, no te voy a dar una solución prefabricada porque si no aquí no aprendemos....

Primero debemos conocer en qué modo está almacenada esta cadena, para saber cómo sabrá el programa que hemos llegado al final de la misma. Por ejemplo, en C las cadenas acaban en 00H. Pero en Pascal no, Pascal almacena la longitud de la cadena antes que ésta.

Inicialmente supondré que nos ceñimos a un almacenamiento tipo C.

Te recomiendo que uses para esto las instrucciones lodsb y stosb. lodsb carga en AL el valor contenido en DS:SI e incrementa DS:SI en una unidad, mientras que stosb escribe en ES:DI el valor contenido en AL e incrementa en una unidad ES:DI.

Básicamente tu programa será así:

1.- DS:SI apunta a la cadena original. Le incrementamos una unidad, puesto que el primer carácter *no* nos interesa.

2.- ES:DI apunta a donde deseas almacenar el resultado.

3.- Cargamos el siguiente carácter de la cadena (lodsb).

4.- AL = 0? SÍ ->saltamos al punto 7

5.- Escribimos el carácter en el destino (stosb).

6.- Volvemos al punto 3

7.- Escribimos un carácter nulo al final de la cadena destino haciendo MOV AL, 0 y STOSB, de este modo la cadena destino ya tiene terminación (siguiendo las convenciones de C). Terminamos aquí.

Salu2.
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