Che cosa significa “-0x1 (% edx, ECX%, 1)” significa in uscita objdump?
Domanda
Utilizzando objdump per capire un binario e mi rendo conto che non sono abbastanza fluente in sintassi ASM. Che cosa significa il seguente concetto?
xor %al,-0x1(%edx,%ecx,1)
E mentre ci sei? - cosa devo cercare al fine di trovare della documentazione su tali nozioni
Soluzione
Le parentesi sono gli offset di memoria:
-0x1(%edx,%ecx,1)
(AT & T sintassi) è pari a [edx+ecx*1-1]
(sintassi Intel)
Guida rapida per AT & T sintassi assembly (secondo la vostra richiesta).
Altri suggerimenti
Questa è esclusivo o con contenuto del byte basso (% al) del 'un' registro e il contenuto della memoria all'indirizzo che è la somma di 'd' ampi registri 32 bit (% edx) , 'c' moltiplicato per 1 (% ecx, 1) e -1. Il risultato viene ripristinato al% al. In C
al ^= (char*)(edx+ecx*1 - 1);
Si può cercare cose come questo a sandpile o nel / documentazione di AMD Intel.