directiva word ptr

directiva word ptr

de Gabriel Barbatto Garcia -
Número de respuestas: 11
No entiendo bien cual es la diferencia de hacer por ejemplo:
mov word ptr [bp], constante
y
mov [bp], constante
o sea, cual es el cometido de la directiva ahi? en que caso iria?
En respuesta a Gabriel Barbatto Garcia

Re: directiva word ptr

de Gonzalo Tejera -
Hola. La constante qué tamaño tiene? byte o palabra? por qué?

El ptr sirve para dar el tipo del puntero en los casos en los que no queda definido por el otro operando de la instrucción.

Saludos, Gonzalo
En respuesta a Gonzalo Tejera

Re: directiva word ptr

de Gabriel Barbatto Garcia -
Ahi va, entonces si constante es igual a 5 por ej. el tipo no quedaria definido y se utilizaria la directiva. 
y si por ej. pusiera mov [bp], ax aca ya no seria necesario el ptr, no? 

Si es asi, me quedo claro, saludos y gracias.
En respuesta a Gabriel Barbatto Garcia

Re: directiva word ptr

de Gonzalo Tejera -
En respuesta a Gonzalo Tejera

Re: directiva word ptr

de Maria Valentina Da Silva De Souza -
"El ptr sirve para dar el tipo del puntero en los casos en los que no queda definido por el otro operando de la instrucción."

Hola vi el ejemplo que puso el compañero:
mov word ptr [bp], constante

En este ejemplo que es lo que no queda definido aca? el tamaño de constante?
Al hacer  word ptr [bp] que es lo que estoy definiendo? 

Saludos.
En respuesta a Maria Valentina Da Silva De Souza

Re: directiva word ptr

de Gonzalo Tejera -
Sí, el tamaño de constante. Si la constante es un número de más de ocho bits el ensamblador podría, con cierta "inteligencia", determinar el tamaño de lo que querés comparar, pero si es menor no tiene como determinarlo. Entonces se lo tenés que decir con el ptr.

Saludos, Gonzalo
En respuesta a Gonzalo Tejera

Re: directiva word ptr

de Maria Valentina Da Silva De Souza -
Hola en la cartilla de intel 8086 en algunas instrucciones se admite comparar memoria o un registro con un inmediato. Si se asume que el inmdiato es de 16 bits y en la instrucción se quiere usar todo el inmediato de 16 bits, no es necesario utilizar la directiva word ptr no?
En respuesta a Maria Valentina Da Silva De Souza

Re: directiva word ptr

de Gonzalo Tejera -
Hola, en ese caso de comparar con un registro el tamaño de la constante queda determinada por el tamaño del registro (pe si usas BL la constante es de tipo byte y si usas BX es de 16 bist). En el caso de memoria debés usar el ptr.

A qué te referís con asumir que el inmediato es de 16 bits?

Saludos, Gonzalo
En respuesta a Gonzalo Tejera

Re: directiva word ptr

de Maria Valentina Da Silva De Souza -
Hola entonces hacer mov [bp], constante  esta mal y lo correcto es hacer mov word ptr [bp], constante.

Cuando yo hago mov word ptr [bp], constante estoy diciendo que quiero que se almacene constante en dos bytes.
Cuando yo hago mov byte ptr [bp], constante estoy diciendo que se almacene la constante en un byte, en este caso solo se va almacenar en [bp] los 8 bits menos significativos de constante, pero como [bp] hay espacio para 8 bits más estos se rellenan con cero?


Saludos y gracias por contestar.


En respuesta a Maria Valentina Da Silva De Souza

Re: directiva word ptr

de Gonzalo Tejera -
Por qué decis que hay espacio para 8 bits más?

Saludos, Gonzalo
En respuesta a Gonzalo Tejera

Re: directiva word ptr

de Maria Valentina Da Silva De Souza -
Porque no es que cuando hago referencia [bp] es como que estoy apuntando a la parte baja y a la parte alta.
Como por ejemplo cuando trabajas con una pila.
Push n
Push bp
mov bp,sp

y si quero acceder a n debo hacer [bp+2], o esto de que se almacene en dos bytes es solo para el stack?, sé que los registros son de 16 bits.
En respuesta a Maria Valentina Da Silva De Souza

Re: directiva word ptr

de Gonzalo Tejera -
Hola. Cuando trabajas con el stack lo elementos que manipulas son siempre de tipo palabra. El tema es que cuando pones el ptr definís el tipo de lo que manipulas y solo accedes al tamaño del tipo definido.

Saludos, Gonzalo