Ejercicio 1 Practico 5

Ejercicio 1 Practico 5

de Carlos Augusto Rodriguez Gonzalez -
Número de respuestas: 1

Hola,

El pseudo que pense para este ejercicio seria:

i = 0;

while (i < N) {

D2[i] = D1[i];

i = i + 1;

}

Llevandolo a 8086, empeze asi:


copia proc

xor DI, DI

while:

cmp DI, CX

jae fin

<--- En este punto me quedo trancado por los siguientes motivos:

  • No puedo hacer algo del estilo mov [BX+DI] [AX+DI] porque los accesos memoria-memoria no estan permitidos y ademas [AX+DI] no es un indirecto valido (?)
  • Intente hacer algo del estilo: 
    • mov DX, BX                      ; guardo BX
    • mov BX, AX                      ; cargo BX con el valor de AX para acceder a memoria   
    • mov AX, [BX+DI]              ; AX tiene el valor de D1[i]
         Pero al intentar "rearmar" esto, me quedo sin registros! (no puedo escribir BX, porque tiene el valor original de AX ni DX porque tiene el valor original de BX)


Claramente estoy bastante confundido, se me ocurren soluciones involucrando el stack o tal vez variables, pero me da la impresion que no es el objetivo de este ejercicio. Alguien me podria guiar?


Gracias.

En respuesta a Carlos Augusto Rodriguez Gonzalez

Re: Ejercicio 1 Practico 5

de Federico Rivero -

Estimado:

Pueden haber formas de economizar los registros (por ejemplo, utilizar sólo BX para acceder a D1[i]. Pero la idea de usar el stack o variables para guardar valores intermedios no es incorrecta en absoluto. 

Saludos,

             Federico