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.