Al final consegui solucionarlo. Aunque como dicen por ahi , primero haz que compile ( en este caso ensamble ) y luego optimizalo. Lo que he hecho es en lugar del lodsb poner un mov al , [DS:SI] , hacer el proceso de impresion del caracter y luego antes de repetir el bucle incrementar SI para pasar al siguiente caracter. Aunque es evidente que con lodsb necesitas menos instrucciones , pero por lo menos asi comprendo mi codigo y se que funciona hasta que le coja el truco a lodsb.
RESUELTO AL FIN !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Pues es una tontería, esto es mejor.
cld
lodsb
cld limpial a bandera DF y te aseguras de que incremente si.
Un saludo.