Diese Frage hat hier bereits eine Antwort :
Antwort
Normalerweise können wir beim Durchlaufen eines Arrays finden Die folgenden Zeilen des Assemblycodes:
mov [base_address_of_array + array_index * size_of_an_item_in_array], edx
In Ihrem Fall würde ich vermuten, dass sich das Array auf dem Stapel befindet (deshalb finden Sie esp
als Teil der Basisadresse des Arrays. Dann haben Sie auch einen Offset zu esp
, der 0Ch
(12 in Dezimalzahl). Das Array befindet sich also unter esp + 0Ch
. Dann ist eax
der Index und 4
ist die Größe eines Elements im Array (wahrscheinlich eine Ganzzahl von 4 Bytes).
Wenn wir uns das w ansehen Loch CFG, ich würde es in etwa so zurück in C übersetzen:
int array[4]; for (int i = 0; i < 4; ++i) array[i] = i;
Hinweis : Ich nahm an, dass der blaue Bogen in der CFG wieder zu loc_401381
zurückkehrt.
Kommentare
- Der Assemblycode sieht aus wie eine Zeigerarithmetik mit Arrays. Ist es nicht '?