SoloCodigo
Programación General => ASM (Ensamblador) => Mensaje iniciado por: SasukeJ en Miércoles 11 de Marzo de 2009, 22:46
-
Tengo las siguiente variable:
ARRAY DW 5 DUP (?)
y el registro BX con un valor.
quiero copiar el registro BX a todas las posiciones de ARRAY.
Prove de estas maneras:
(AX contador )
MOV ARRAY[AX], BX
MOV ARRAY[AX], BYTE PTR BX
MOV ARRAY[AX], WORD PTR BX
.... y algunas más y siempre me deja los valores de ARRAY sin nada, si alguien ayuda se agradece.
Saludos
-
mov word ptr [ARRAY+ax*2], bx
-
La instrucción que me diste me de Illegal indexing mode, estoy trabajando bajo 8086.
Prove de adapatar lo que me diste a:
(AX contador que incrementa en 2)
MOV WORD PTR ARRAY[AX], BX
y me sucede lo mismo en la variable array no me guarda nada... si a alguien se le ocurre algo bienvenido sea.
-
Tenes que usar la direccion de array + el indice multiplicado por dos (tamaño de cada elemento del array = word).
El problema es que BX (Base) es el registro que se usa para esto que yo sepa (el codigo de 16 bits ya es historia casi) ...
mov ax, bx
xor bx, bx
mov word ptr [ARRAY+bx], ax
y podes usar cx para hacer un loop ...
-
Utilizando los registros como me propusiste no me peta, pero persiste el problema, cuando lo ejecuto paso a paso con TD y monitoreo las variables
ARRAY={0,0,0,0,0} nunca varian el valor ni cuado executa el MOV... es lo mismo que me sucedia copiando directamente T_T
EI: juntando mensajes.
Solucionado se puede cerrar, me deje de ligar el segmento de datos ¬¬ es lo que tiene tener mil practicas ke entragar y ir rapido.
Saludos y gracias.
-
Es mejor poner el codigo completo en assembly desde el principio :good: