Ensamblador - REGISTROS

 
Vista:

REGISTROS

Publicado por Yo Mismo (2 intervenciones) el 04/09/2000 00:00:00
Me podria explicar alguien ya que me estoy iniciando esta instruccion, pues me estoy haciendo un lio la verdad, el manual no es muy claro:

mov AX,dato
mov AX,ES:dato

dato dw 1234h ;variable del programa.


Y ahora, para meter el contenido de una direccion de memoria como tendria que hacer?? por ejemplo, el contenido de una direccion de memoria en AX.


Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:REGISTROS

Publicado por El pollito (3 intervenciones) el 04/09/2000 00:00:00
Se puede hacer, pero no se usa el registro AX para direccionar. Puedes
Utilizar BX, DX, SI, DI, o BP. ( mas recomendable con bx o dx)

mov bx, offset dato
mov ax, bx


Con esto guardas la direccion en ax.

Y eso es todo.
Atte. El pollito
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:REGISTROS

Publicado por Yo de nuevo (2 intervenciones) el 07/09/2000 00:00:00
Y entonces el segment donde queda??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:REGISTROS

Publicado por El pollito (3 intervenciones) el 07/09/2000 00:00:00
Depende del modelo de memoria que estes usando.
En el caso anterior, el segment queda en DS.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:REGISTROS

Publicado por Enrique (2 intervenciones) el 13/09/2000 00:00:00
Mov AX,Dato
Mueve el contenido de la memoria de dato (que en el ejemplo en 1234), al registro AX. Por tanto despues de ejecutar esta instruccion, AX contiene el valor de AX. SIEMPRE Y CUANDO el registro de segmento DS apunte al mismo segmento donde se encuentra ´Dato´. Pues si no se especifica ningun prefijo de segmento se asume DS. AX=[DS:Dato3]

Mov AX,ES:Dato.
Hace lo mismo que la instruccion anterion pero se fuerza a utilizar el segmento ES, para formar la direccion completa de la palabra ´Dato´ (ES:Dato).
Si ES no apunta al segmento donde esta ´Dato´, en AX se almacenara un valor desconocido.

Si lo que quieres es saber en que parte de la memoria esta ´Dato´, utiliza:
Mov AX,Offset Dato
De la manera que has escrito el ejemplo, el segmento donde esta ´Dato´, debe ser en el segmento de codigo o sea en CS.

Utiliza...

Push CS
Pop DS

para que DS=CS, y asi no tendras que utilizar ningun prefijo de segmento cuando quieras direccionar ´Dato´.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar