Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/06/2013, 00:38
emma93
 
Fecha de Ingreso: abril-2008
Ubicación: Córdoba
Mensajes: 103
Antigüedad: 16 años, 8 meses
Puntos: 4
Assembler, ejercicio práctico.

Hola que tal?

Tengo que hacer un trabajo práctico para la facultad, y resulta que me he trabado en un ejercicio, y a pesar de que busque por internet, tengo una duda que no logro resolver.

El enunciado dice:

Dada una tabla de datos contenida a partir de la dirección de memoria DS:1000 y cuyo final viene dado por un caracter “$” (Hex. 24) elimine todos los espacios en blanco (HEX 20) que hay en el comienzo de la lista desplazando hacia arriba tantos lugares como espacios blancos haya eliminado.

Ejemplo.


Antes de ejecución:

Dirección de memoria - Valor cargado

1000 20

1001 20

1002 20

1003 20

1004 41

1005 42

1006 5F

1007 20

1008 34

1009 24

100A …

Luego de la ejecución:

Dirección de memoria - Valor cargado

1000 41

1001 42

1002 5F

1003 20 (Este valor no será borrado porque no está al principio de la lista)

1004 34

1005 24

Mi duda es: Yo se como hacer para ir leyendo las direcciones de memorias. También se como realizar comparaciones con CMP op1, op2. Luego sé como hacer para saltar a una dirección de memoria específica en caso de que la comparación sea correcta (JZ). Ahora, mi duda es: Como podría hacer para que, en el ejemplo dado, el valor de la dirección de memoria 1004 se mueva a la dirección de memoria 1000, y a su vez todas las direcciones de memorias superiores a la 1004 se retrasen?

Espero haberme explicado, a ver si me pueden orientar un poco.

Saludos!