Index des Arrays in der Baugruppe? [duplicate]

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 '?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.