Eventuali duplicati:
What’s the purpose of the LEA instruction?
LEA instruction?difficoltà comando di capire "indirizzo effettivo carico"
Così sto lavorando su l'assegnazione bomba a binario per la classe (che ha un mucchio di fasi in cui devi passare attraverso il codice assembly di un programma e trovare una passphrase per decodificare la "bomba").
Non riesco a completare la fase corrente perché non capisco il comando lea. Ho letto che è comunemente usato per l'aritmetica, ma semplicemente non capisco come funziona.
Il comando che sto guardando in particolare, è
lea -0x18(%ebp), %ebx
lea -0x8(%ebp), %esi
seguito da un
mov -0x4 (%ebx), %eax
add -0x8(%ebx), %eax
nella riga successiva eax e ebx sono confrontati, se sono uguali il programma continua, altrimenti la bomba esplode.
Ho capito abbastanza su questa fase per sapere che vuole 6 numeri, i primi due sono 0 e 1. Dopo di ciò, fa alcune manipolazioni per determinare se il resto della sequenza è corretto (sto assumendo il i comandi lea sono ciò che ho bisogno di decodificare per trovare i numeri successivi).
Ora quello che non ho potuto trovare è ciò a cui si riferisce in particolare -0x18. cosa fa il segno negativo? indica sottrazione? sta guardando 18 byte prima di ebp?
Grazie per qualsiasi aiuto qui.