Saltar al contenido

Confusión de uso de dword ptr

Después de buscar en varios repositorios y foros al terminar hemos hallado la solución que te enseñamos pronto.

Solución:

En ambos casos, le pide al procesador que mueva el valor de una dirección específica. Es un nivel de indirección. En el primer caso, le pide que tome la dirección de un registro específico. En el segundo caso, especifica un desplazamiento directamente.

Los procesadores x86 no admiten el direccionamiento indirecto de doble nivel, por lo que no es posible solicitar cargar un valor desde una dirección especificada en algún lugar de la memoria; debe cargar la dirección en un registro.

Bajo una serie de ensambladores (MASM e integrado en el ensamblador VC ++, por ejemplo), también podría escribir solo

mov eax, dword ptr some_variable

sin paréntesis significaría lo mismo.

podrías escribir

mov eax, dword ptr [variable][ebx]

esto indicaría tomar la dirección de “variable”, luego agregar el valor de ebx y usar la suma como una dirección desde la cual cargar un valor. Esto se usa a menudo para acceder array elementos por índice. (Se admiten variaciones en la sintaxis, como mov eax, dword ptr variable[ebx] siendo de uso común y mov eax, dword ptr [variable + ebx] también siendo común.)

En todos estos casos, el procesador haría lo mismo: cargar un valor desde una dirección específica. Es un nivel de indirección cada vez.

Comentarios y valoraciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *