22/06/2013, 00:38
|
| | 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! |