lunes, 25 de noviembre de 2013

COMO LIMPIAR EL ÁREA DE ENTRADA

Los caracteres introducidos reemplazan a los anteriores que están en un área de entrada y permanecen hasta que otros caracteres los reemplazan. Considere las siguientes entradas sucesivas:


El nombre HAMILTON reemplaza al nombre mas corto PAINE. Pero ya que el nombre ADAMS es mas corto que HAMAILTON, reemplaza HAMIL y el carácter Enter reemplaza a la T. Las letras restantes, ON, aun siguen a ADAMS. Puede querer borrar NAMEFLD antes de solicitar un nombre como sigue:










En lugar del registro SI puede usar el DI o el BX. Un método mas eficaz que mueve una palabra de dos espacios en blanco necesita 10 ciclos. Sin embargo, como NAMEFLD esta definido como DB (byte), tendría que invalidar su longitud con un operando WORD y PTR (apuntador), como se indica a continuación 











Interprete el MOV en B30 como "Mover una palabra en blanco a la localidad de memoria a donde apunta el registro SI". Este ejemplo usa LEA para inicial izar el borrado de NAMEFLD y utiliza un método ligeramente diferente para el MOV en B30 porque ya no puede codificar una instrucción como

MOV WORD PTR [NAMEFLD] , 2020H ; NO VALIDO

El borrado del área de entrada resuleve el problema de nombres mas cortos que siguen a datos anteriores. Una practica mas efectiva es borrar solo las posiciones a la derecha del nombre que ha sido ingresado de manera mas reciente.

No hay comentarios:

Publicar un comentario