indeks over matrise i montering? [duplikat]

Dette spørsmålet har allerede et svar her :

Svar

Vanligvis, når vi kjører gjennom en matrise, kan vi finne følgende linjer med monteringskode:

mov [base_address_of_array + array_index * size_of_an_item_in_array], edx 

I ditt tilfelle vil jeg gjette at matrisen er på bunken (det er derfor du finner esp som en del av basisadressen til matrisen. Deretter har du også en forskyvning til esp som er 0Ch (som er 12 i desimal). Matrisen ligger altså ved esp + 0Ch. Deretter er eax indeksen og 4 er størrelsen på et element i matrisen (sannsynligvis et heltall på 4 byte).

Hvis vi ser på w hull CFG, jeg vil oversette det tilbake til C i noe slikt:

int array[4]; for (int i = 0; i < 4; ++i) array[i] = i; 

Merk : Jeg antok at den blå lysbuen i CFG kommer tilbake til loc_401381.

Kommentarer

  • Monteringskoden ser ut som peker-aritmetikk med matriser. Er det ikke '?

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *