Para ver si mas o menos esta bien el direccionamiento de memoria.
Me quedo de la siguiente manera el ejercico 1.
MOV Di, 0
MOV Bp, Ax
while:
CMP Cx, Di
je finwhile
MOV Dl, [Bp+Di]
MOV [Bx+Di], Dl
INC Dl
jmp while
finwhile:
Puedo usar las etiquetas While y FinWhile o tengo que hacer los jumps pasandole como dato el desplazamiento.
Gracias
Hola Juan.
Claro que se pueden usar los nombres de las etiquetas para saltar, para eso están.
Saludos, Gonzalo
Muchas gracias por la respuesta. Por lo que tenia entendido cuando no se especificaba el segmento, se asumia DS. Supongo que en el ejemplo al dejarlo asi, es lo mismo que haber puesto
MOV Dl, Ds[Bp+Di]
MOV Ds[Bx+Di], Dl
MOV Dl, Ds[Bp+Di]
MOV Ds[Bx+Di], Dl
De hecho, según el registro que estés utilizando se asume un segmento u otro.
En las notas de 8086 podés encontrar una tabla en donde se indica esto (página 4, Tabla 1.Combinación entre registros de segmento e indices.).
Por poner un ejemplo, el BP asume que el segmento es el SS y el BX asume que el segmento es el DS.
Espero se entienda, cualquier duda a las órdenes.
Saludos.
En las notas de 8086 podés encontrar una tabla en donde se indica esto (página 4, Tabla 1.Combinación entre registros de segmento e indices.).
Por poner un ejemplo, el BP asume que el segmento es el SS y el BX asume que el segmento es el DS.
Espero se entienda, cualquier duda a las órdenes.
Saludos.
En respuesta a Juan Sebastian Korenko Crisera
Re: Practico10 Ejercicio1.
Cuando utilizo el offset [Bp +Di] por defecto el segmento es SS no? por mas que el de Di sea Ds.
En el caso de utilizar segmentos distintos para el Bp y el Bx, igual el funcionamiento es correcto?
Digo hay algun conflicto en que el Bp lo estoy utilizando con otro segmento
En el caso de utilizar segmentos distintos para el Bp y el Bx, igual el funcionamiento es correcto?
Digo hay algun conflicto en que el Bp lo estoy utilizando con otro segmento
Sí, en caso de utilizar a BP y DI se usa SS. No entiendo la parte que hablas de segmentos distintos y el funcionamiento.
Saludos, Gonzalo
En respuesta a Juan Sebastian Korenko Crisera
Re: Practico10 Ejercicio1.
Hola Juan,
Una pregunta, en la cartilla el mov puede usarse con 2 argumentos de memoria, ¿sería correcto unir los mov di,[] y mov [],di en mov [],[]?
Gracias,
Una pregunta, en la cartilla el mov puede usarse con 2 argumentos de memoria, ¿sería correcto unir los mov di,[] y mov [],di en mov [],[]?
Gracias,
En respuesta a Juan Pablo Lorier Arismendi
Re: Practico10 Ejercicio1.
Juan,
Hola, no se puede. Si miras la cartilla dice (No mueve memoria a memoria). Ademas la arquitectura intel solo permite en general que uno de sus operandos sea de memoria.
Saludos
Hola, no se puede. Si miras la cartilla dice (No mueve memoria a memoria). Ademas la arquitectura intel solo permite en general que uno de sus operandos sea de memoria.
Saludos
Hola. Muchas operaciones pueden usar dos operando en modo "memoria" pero sólo uno de ellos a la vez. mov [], [] no es correcto.
Saludos, Gonzalo
En respuesta a Juan Sebastian Korenko Crisera
Re: Practico10 Ejercicio1.
Con respecto a la nota que tiene este ejercicio:
"AX no puede usarse para acceder a memoria"
Esto es en general o simplemente un obstáculo para resolver este ejercicio en particular?
Gracias.
En respuesta a Andres Gaston Gimenez Medina
Re: Practico10 Ejercicio1.
Hola Andrés,
Es en general, tampoco con CX, DX.
Las únicas tres formas de direccionar memoria son:
- Bx + opcionalmente Di o Si + opcionalmente un desplazamiento.
-Di o Si + opcionalmente un desplazamiento.
-Un desplazamiento.
Están en la cartilla en la segunda hoja abajo del todo.
Saludos,
Matías.