¿Qué significa “-0x1 (EDX%,% ecx, 1)” significa la producción objdump?
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
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.