Duplicar posibles:
What’s the purpose of the LEA instruction?
LEA instruction?problemas para la comprensión de comando de montaje "dirección efectiva de carga"
Así que estoy trabajando en la asignación bomba binaria para la clase (tiene un montón de fases donde tiene que pasar por el código de ensamblaje de un programa y encontrar una frase de contraseña para decodificar la "bomba").
No puedo completar mi fase actual porque no entiendo el comando lea. He leído que se usa comúnmente para la aritmética, pero simplemente no entiendo cómo lo hace.
El comando que estoy viendo en particular, es
lea -0x18(%ebp), %ebx
lea -0x8(%ebp), %esi
seguido por un
mov -0x4 (%ebx), %eax
add -0x8(%ebx), %eax
en la siguiente línea de EAX y EBX se comparan, si son iguales el programa continúa, De lo contrario, la bomba explota.
He descubierto lo suficiente sobre esta fase para saber que quiere 6 números, los dos primeros son 0 y 1. Después de eso, se hacen algunas manipulaciones para determinar si el resto de la secuencia es correcta (supongo que Los comandos de lea son lo que necesito decodificar para encontrar los siguientes números).
Ahora lo que no pude encontrar es a qué se refiere el -0x18 en particular. ¿Qué hace el signo negativo? ¿indica la resta? ¿Está buscando 18 bytes antes de ebp?
Gracias por la ayuda aquí.