¿Qué significa “-0x1 (EDX%,% ecx, 1)” significa la producción objdump?

StackOverflow https://stackoverflow.com/questions/1876815

  •  18-09-2019
  •  | 
  •  

Pregunta

El uso de objdump a entender un binario y me doy cuenta que no soy lo suficientemente fluida en la sintaxis de ASM. ¿Qué significa la siguiente idea?

xor    %al,-0x1(%edx,%ecx,1)

Y mientras estás en ello - lo que debería buscar el fin de encontrar documentación acerca de tales nociones

¿Fue útil?

Solución

Los paréntesis son las compensaciones de memoria:

-0x1(%edx,%ecx,1) (AT & T sintaxis) es igual a [edx+ecx*1-1] (sintaxis Intel)

Guía rápida para de AT & T sintaxis montaje (según su petición).

Otros consejos

Este es un exclusivo o con el contenido del byte bajo (% de Al) de la 'a' registrarse y el contenido de la memoria en la dirección que es la suma de 'd' los 32 bits de ancho registros (% edx) , 'c', multiplicado por 1 (% ecx, 1) y -1. El resultado se vuelve a escribir% al. En C

al ^= (char*)(edx+ecx*1 - 1);

Se puede buscar cosas como esta en pila de arena o en la documentación de Intel / AMD.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top