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